📄 code.htm
字号:
<br><font face="Courier New,Courier"><font size=-1> stop = new Button("StopAnimation");</font></font><br><font face="Courier New,Courier"><font size=-1> stop.setActionCommand("stopanim");</font></font><br><font face="Courier New,Courier"><font size=-1> stop.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> fast = new Button("Faster");</font></font><br><font face="Courier New,Courier"><font size=-1> fast.setActionCommand("fast");</font></font><br><font face="Courier New,Courier"><font size=-1> fast.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> slow = new Button("Slower");</font></font><br><font face="Courier New,Courier"><font size=-1> slow.setActionCommand("slow");</font></font><br><font face="Courier New,Courier"><font size=-1> slow.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> kill = new Button("KillPacket");</font></font><br><font face="Courier New,Courier"><font size=-1> kill.setActionCommand("kl");</font></font><br><font face="Courier New,Courier"><font size=-1> kill.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> kill.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> reset = new Button("Reset");</font></font><br><font face="Courier New,Courier"><font size=-1> reset.setActionCommand("rst");</font></font><br><font face="Courier New,Courier"><font size=-1> reset.addActionListener(this);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // Adding thebuttons</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> add(send);</font></font><br><font face="Courier New,Courier"><font size=-1> add(stop);</font></font><br><font face="Courier New,Courier"><font size=-1> add(fast);</font></font><br><font face="Courier New,Courier"><font size=-1> add(slow);</font></font><br><font face="Courier New,Courier"><font size=-1> add(kill);</font></font><br><font face="Courier New,Courier"><font size=-1> add(reset);</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> public void start()</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> if (gbnThread==null) // Creating main thread and start it</font></font><br><font face="Courier New,Courier"><font size=-1> gbnThread= new Thread(this);</font></font><br><font face="Courier New,Courier"><font size=-1> gbnThread.start();</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> public void run()</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> Thread currenthread= Thread.currentThread();</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> while (currenthread==gbnThread) // While the animation is running</font></font><br><font face="Courier New,Courier"><font size=-1> if (onTheWay(sender)) // Checks if any of the packets are travelling</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> for(int i=0; i<total_packet; i++)</font></font><br><font face="Courier New,Courier"><font size=-1> if (sender[i]!= null)</font></font><br><font face="Courier New,Courier"><font size=-1> if (sender[i].on_way) // If packet is roaming</font></font><br><font face="Courier New,Courier"><font size=-1> if (sender[i].packet_pos < (v_clearance-pack_height))</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].packet_pos+=5; // Move packet</font></font><br><font face="Courier New,Courier"><font size=-1> else if (sender[i].packet_ack) // If it is moving to destination</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].reached_dest = true;</font></font><br><font face="Courier New,Courier"><font size=-1> if (check_upto_n(i)) // Send acknowledgement if all preceeding</font></font><br><font face="Courier New,Courier"><font size=-1> { // packets are received.</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].packet_pos = pack_height+5;</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].packet_ack = false;</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg = "Packet "+i+" received. Acknowledge sent.";</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> else</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].on_way = false;</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg = "Packet "+i+" received. No acknowledge sent.";</font></font><br><font face="Courier New,Courier"><font size=-1> if (i==selected)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> selected = -1;</font></font><br><font face="Courier New,Courier"><font size=-1> kill.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> else if (!sender[i].packet_ack) // acknowledgement</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg = "Packet "+ i +" acknowledge received.";</font></font><br><font face="Courier New,Courier"><font size=-1> sender[i].on_way = false;</font></font><br><font face="Courier New,Courier"><font size=-1> for (int n=0; n<=i; n++)</font></font><br><font face="Courier New,Courier"><font size=-1> sender[n].acknowledged = true;</font></font><br><font face="Courier New,Courier"><font size=-1> if (i==selected)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> selected = -1;</font></font><br><font face="Courier New,Courier"><font size=-1> kill.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> timerThread = null; //resetting timer thread</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> if (i+window_len<total_packet)</font></font><br><font face="Courier New,Courier"><font size=-1> base = i+1;</font></font><br><font face="Courier New,Courier"><font size=-1> if (nextseq < base+window_len) send.setEnabled(true);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> if (base != nextseq)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg += " Timer restarted.";</font></font><br><font face="Courier New,Courier"><font size=-1> timerThread = new Thread(this);</font></font><br><font face="Courier New,Courier"><font size=-1> timerSleep = true;</font></font><br><font face="Courier New,Courier"><font size=-1> timerThread.start();</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> else</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg += " Timer stopped.";</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> strCurrentValues= "Window Base = "+ base +". Next Sequence No. = "+ nextseq;</font></font><br><font face="Courier New,Courier"><font size=-1> repaint();</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> try{</font></font><br><font face="Courier New,Courier"><font size=-1> Thread.sleep(1000/fps);</font></font><br><font face="Courier New,Courier"><font size=-1> } catch (InterruptedException e)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> System.out.println("Help");</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -