📄 showframe.java
字号:
package jinchengdiaodu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import jinchengdiaodu.sortFCFS;import jinchengdiaodu.sortHRRN;import jinchengdiaodu.sortRR;import jinchengdiaodu.sortRR2;import jinchengdiaodu.sortSRT;public class ShowFrame extends JFrame { MainApplet ma; public ShowFrame(MainApplet ma,int n[][]) { super("进程调度算法结果显示"); setSize(600, 600); this.ma=ma; new InitFrame(this); MapPane map = new MapPane(n,this); getContentPane().add(map); } protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { } }}class MapPane extends JPanel implements Runnable{ int n[][];ShowFrame sf; Graphics gr; Thread FCFSthread,RRthread,RR2thread,SPNthread,SRTthread,HRRNthread,FeelBackthread,FeelBack2thread; public MapPane(int n[][],ShowFrame sf){ this.n=n;this.sf=sf; } public void paintComponent(Graphics g) { g.clearRect(0,0,600,580) ; g.drawLine(120,20,580,20); g.drawLine(120,420,580,420); for(int i=120;i<=580;i=i+20){ if(i%100==20){ String kn=String.valueOf(i/20-6) ; g.drawString(kn,i-3,12) ; g.fillRect(i,15,2,5); g.drawString(kn,i-3,412) ; g.fillRect(i,415,2,5); } else{g.fillRect(i,16,1,4); g.fillRect(i,416,1,4);} } drawFCFS(g); drawRR(g); drawRR2(g); drawSRT(g); drawHRRN(g); } public void drawBlock(int num,int s,int pos,Graphics g){ g.fillRect((s+6)*20,num*60+pos*10+25,20,10) ; } public void drawFCFS(Graphics g){ g.drawString("先进先出算法:",20,55) ; g.drawString("A:",108,35) ; g.drawString("B:",108,45) ; g.drawString("C:",108,55) ; g.drawString("D:",108,65) ; g.drawString("E:",108,75) ; FCFSthread=new Thread(this); FCFSthread.start() ; } public void drawRR(Graphics g){ g.drawString("基于时间片段",20,115) ; g.drawString("算法(时间片=1):",20,130) ; g.drawString("A:",108,95) ; g.drawString("B:",108,105) ; g.drawString("C:",108,115) ; g.drawString("D:",108,125) ; g.drawString("E:",108,135) ; RRthread=new Thread(this); RRthread.start() ; } public void drawRR2(Graphics g){ g.drawString("基于时间片段",20,175) ; g.drawString("算法(时间片=4):",20,190) ; g.drawString("A:",108,155) ; g.drawString("B:",108,165) ; g.drawString("C:",108,175) ; g.drawString("D:",108,185) ; g.drawString("E:",108,195) ; RR2thread=new Thread(this); RR2thread.start() ; } public void drawSRT(Graphics g){ g.drawString("最短作业优先",20,275) ; g.drawString("算法:",20,290) ; g.drawString("A:",108,275) ; g.drawString("B:",108,285) ; g.drawString("C:",108,295) ; g.drawString("D:",108,305) ; g.drawString("E:",108,315) ; SRTthread=new Thread(this); SRTthread.start() ; } public void drawHRRN(Graphics g){ g.drawString("最高响应比优",20,355) ; g.drawString("先算法:",20,370) ; g.drawString("A:",108,335) ; g.drawString("B:",108,345) ; g.drawString("C:",108,355) ; g.drawString("D:",108,365) ; g.drawString("E:",108,375) ; HRRNthread=new Thread(this); HRRNthread.start() ; } public void run(){ int a[]=null;int num=0; try{ if(Thread.currentThread()==FCFSthread){ a=sortFCFS.sort(n); } if(Thread.currentThread()==RRthread){ try{ a=sortRR.sort(n); }catch(InterruptedException e){} num=1; } if(Thread.currentThread()==RR2thread){ try{ a=sortRR2.sort(n); }catch(InterruptedException e){} num=2; }/* if(Thread.currentThread()==SPNthread){ a=sortSPN.sort(n); num=3; }*/ if(Thread.currentThread()==SRTthread){ a=sortSRT.sort(n); num=4; } if(Thread.currentThread()==HRRNthread){ a=sortHRRN.sort(n); num=5; }/* if(Thread.currentThread()==FeelBackthread){ try{ a=sortFB.sort(n); }catch(InterruptedException e){} num=6; }*/ /* if(Thread.currentThread()==FeelBack2thread){ try{ a=sortFB2.sort(n); }catch(InterruptedException e){} num=7; }*/ }catch(ArrayIndexOutOfBoundsException e){ JOptionPane.showMessageDialog(this,"对不起,输入超出了本程序的表示范围!","fail",JOptionPane.WARNING_MESSAGE); sf.dispose(); } for(int i=0;i<a.length ;i++){ gr=getGraphics(); if(num%2==0) gr.setColor(Color.red); else gr.setColor(Color.blue); if(a[i]>=0) drawBlock(num,i,a[i],gr); try{ Thread.sleep(100) ; }catch(InterruptedException e){} } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -