⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showframe.java

📁 操作系统进程调度压缩包
💻 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 + -