ARQ协议模拟实现java.doc_第1页
ARQ协议模拟实现java.doc_第2页
ARQ协议模拟实现java.doc_第3页
ARQ协议模拟实现java.doc_第4页
ARQ协议模拟实现java.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Timer.java文件package common;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.Timer;import javax.swing.JTextField;public class TimeDate now ; Timer timer; JTextField lbl; public Time( JTextField l) lbl=l; timer = new Timer(1000, new ActionListener() public void actionPerformed(ActionEvent e) now = new Date(now.getTime() - 1000); SimpleDateFormat formatter = new SimpleDateFormat(HH:mm:ss); lbl.setText(formatter.format(now); ); SuppressWarnings(deprecation)public void time_start() / lbl.setText(00:00:10); now = new Date(); now.setHours(0); now.setMinutes(0); now.setSeconds(10); timer.start(); public void time_stop() timer.stop(); lbl.setText(00:00:10); public void time_restart(); timer.stop();this.time_start(); ARQ.java文件import java.awt.*;import java.awt.event.*;import javax.swing.BoxLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JScrollPane;import javax.swing.JTextField;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.ButtonGroup;import javax.swing.JTable;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.table.*;import javax.swing.text.Document;import java.io.FileWriter;import java.io.IOException;import common.Time;public class ARQ extends JFrame private static final long serialVersionUID = -5437589209629747957L; private int NUM; private Time T; private JTextField status; private JButton b; private JRadioButton r; DefaultTableModel m_data; JTable m_view; FileWriter f1; FileWriter f2; FileWriter f3;public ARQ() throws IOException super(ARQ); NUM=0; Container c=getContentPane(); c.setLayout(new FlowLayout(); JPanel P=new JPanel2; P0=new JPanel(); P0.setLayout(new BoxLayout(P0,BoxLayout.X_AXIS); c.add(P0); P1=new JPanel(); c.add(P1); JPanel Q=new JPanel2; Q0=new JPanel(); Q0.setLayout(new BoxLayout(Q0,BoxLayout.Y_AXIS); P0.add(Q0); Q1=new JPanel(); Q1.setLayout(new BoxLayout(Q1,BoxLayout.Y_AXIS); P0.add(Q1); JPanel R=new JPanel4; R0=new JPanel(); R0.setLayout(new FlowLayout(FlowLayout.LEFT); Q0.add(R0); R1=new JPanel(); R1.setLayout(new FlowLayout(FlowLayout.LEFT); Q0.add(R1); R2=new JPanel(); R2.setLayout(new FlowLayout(FlowLayout.LEFT); Q0.add(R2); R3=new JPanel(); R3.setLayout(new FlowLayout(FlowLayout.CENTER); Q0.add(R3); /文件 f1=new FileWriter(f1.txt,true); f2=new FileWriter(f2.txt,true); f3=new FileWriter(f3.txt,true); /数据发送状态 JTextField s=new JTextField(新数据,7), new JTextField(重发,7) , new JTextField(倒计时,4), new JTextField(00:00:10,10), new JTextField(数据,4), new JTextField(,15) ; /数据发送住状态 status=s; status0.setEditable(false); status1.setEditable(false); status2.setEditable(false); status4.setEditable(false); status1.setEnabled(false); JLabel l=new JLabel(状态: ); R0.add(l); R0.add(status0); R1.add(status2); R1.add(status3); R2.add(status4); R2.add(status5); b=new JButton(发送); b.setEnabled(false); R3.add(b); JLabel l1=new JLabel(选择操作); Q1.add(l1); / 选择操作 JRadioButton r1=new JRadioButton(ACK), new JRadioButton(NAK), new JRadioButton(不处理), new JRadioButton(初始) ; r=r1; ButtonGroup rg=new ButtonGroup(); for(int i=0;ir.length-1;i+) Q1.add(ri); rg.add(ri); rg.add(r3); / /数据收发住状态列表 m_data=new DefaultTableModel(); m_view=new JTable(m_data); m_view.setPreferredScrollableViewportSize(new Dimension(300,230); /表格大小 m_view.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sPane=new JScrollPane(m_view); P1.add(sPane); T=new Time(status3); /发送操作 b.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) T.time_start(); newtore();status0.setText(新数据);r3.setSelected(true); ); / 时间显示 监听 Document dt = status3.getDocument(); dt.addDocumentListener(new DocumentListener() public void changedUpdate(DocumentEvent e) ; public void insertUpdate(DocumentEvent e) if(status3.getText().toString().equals(00:00:00) T.time_restart(); newtore(); String s=status5.getText().toString(); mb_addRow(s, 超时,重发,); public void removeUpdate(DocumentEvent e) ; ); /输入监听 Document dt1 = status5.getDocument(); dt1.addDocumentListener(new DocumentListener() public void changedUpdate(DocumentEvent e) public void insertUpdate(DocumentEvent e) if(!status5.getText().toString().equals() b.setEnabled(true); ; public void removeUpdate(DocumentEvent e) if(status5.getText().toString().equals() b.setEnabled(false); ; ); /按钮监听 r0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) T.time_stop(); retonew(); status5.setText(); status5.requestFocus(); ); r0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String s=status5.getText().toString();NUM+; mb_addRow(s, ACK,接受 +NUM,s); /NUM+ int装化为string ); r1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) T.time_restart();newtore(); ); r1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String s=status5.getText().toString(); mb_addRow(s, NCK,重发,); /NUM+ int装化为string ); r2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) T.time_restart();newtore(); ); r2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String s=status5.getText().toString(); mb_addRow(s, 不处理,重发,); /NUM+ int装化为string ); / /获取焦点 this.addWindowListener(new java.awt.event.WindowAdapter() public void windowActivated(java.awt.event.WindowEvent e) status5.requestFocusInWindow(); mb_addColumn(); ); /关闭文件 this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) try f1.close();f2.close(); f3.close(); catch (IOException e1) e1.printStackTrace(); ); /重发状态public void newtore()status0.setText(重发);b.setEnabled(false);r0.setEnabled(true);r1.setEnabled(true);r2.setEnabled(true);|/新信息状态public void retonew()status0.setText(新数据);b.setEnabled(true);r0.setEnabled(false);r1.setEnabled(false);r2.setEnabled(false);/添加一行public vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论