📄 code.htm
字号:
<br><font face="Courier New,Courier"><font size=-1> else</font></font><br><font face="Courier New,Courier"><font size=-1> gbnThread= null;</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> while (currenthread== timerThread)</font></font><br><font face="Courier New,Courier"><font size=-1> if (timerSleep)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> timerSleep=false;</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(time_out_sec*1000);</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 ("Timer interrupted.");</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</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> for(int n=base; n<base+window_len; n++)</font></font><br><font face="Courier New,Courier"><font size=-1> if (sender[n] != null)</font></font><br><font face="Courier New,Courier"><font size=-1> if (!sender[n].acknowledged)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> sender[n].on_way = true;</font></font><br><font face="Courier New,Courier"><font size=-1> sender[n].packet_ack = true;</font></font><br><font face="Courier New,Courier"><font size=-1> sender[n].packet_pos = pack_height+5;</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> timerSleep= true;</font></font><br><font face="Courier New,Courier"><font size=-1> if(gbnThread == null)</font></font><br><font face="Courier New,Courier"><font size=-1> {</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> statusMsg= "Packets resent by timer. Timer restarted.";</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> </font></font><br><font face="Courier New,Courier"><font size=-1> public void actionPerformed(ActionEvente)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> String cmd =e.getActionCommand();</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> if (cmd == "rdt"&& nextseq < base+window_len) // Send button is pressed</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> sender[nextseq]= new packet(true,pack_height+5);</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg= "Packet "+ nextseq +" sent.";</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> { // i.e. the window is empty and a new data is getting in</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg+= " Timer set for packet "+ base +".";</font></font><br><font face="Courier New,Courier"><font size=-1> if(timerThread == null)</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> </font></font><br><font face="Courier New,Courier"><font size=-1> repaint();</font></font><br><font face="Courier New,Courier"><font size=-1> nextseq++;</font></font><br><font face="Courier New,Courier"><font size=-1> if (nextseq== base+window_len)</font></font><br><font face="Courier New,Courier"><font size=-1> send.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> 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> else if (cmd== "fast") // Faster button pressed</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> fps+=2;</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg= "Simulation speed increased by 2 fps.";</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 (cmd== "slow" && fps>2)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> fps-=2;</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg= "Simulation speed decreased by 2 fps.";</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 (cmd== "stopanim")</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> gbnThread= null;</font></font><br><font face="Courier New,Courier"><font size=-1> if (timerThread!= null)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> timerFlag= true;</font></font><br><font face="Courier New,Courier"><font size=-1> timerThread= null; // added later</font></font><br><font face="Courier New,Courier"><font size=-1> }</font></font><br><font face="Courier New,Courier"><font size=-1> stop.setLabel("Resume");</font></font><br><font face="Courier New,Courier"><font size=-1> stop.setActionCommand("startanim");</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> // disableingall the buttons</font></font><br><font face="Courier New,Courier"><font size=-1> send.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> slow.setEnabled(false);</font></font><br><font face="Courier New,Courier"><font size=-1> fast.setEnabled(false);</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> statusMsg= "Simulation paused.";</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> </font></font><br><font face="Courier New,Courier"><font size=-1> else if (cmd== "startanim")</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg= "Simulation resumed.";</font></font><br><font face="Courier New,Courier"><font size=-1> stop.setLabel("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> if (timerFlag)</font></font><br><font face="Courier New,Courier"><font size=-1> {</font></font><br><font face="Courier New,Courier"><font size=-1> statusMsg+= " Timer running.";</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> </font></font><br><font face="Courier New,Courier"><font size=-1> // enablingthe buttons</font></font><br><font face="Courier New,Courier"><font size=-1> send.setEnabled(true);</font></font><br><font face="Courier New,Courier"><font size=-1> slow.setEnabled(true);</font></font><br><font face="Courier New,Courier"><font size=-1> fast.setEnabled(true);</font></font><br><font face="Courier New,Courier"><font size=-1> kill.setEnabled(true);</font></font><br><font face="Courier New,Courier"><font size=-1> repaint(); // repainted to show new messages</font></font><br><font face="Courier New,Courier"><font size=-1> </font></font><br><font face="Courier New,Courier"><font size=-1> 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> else if (cmd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -