日期:2014-05-20 浏览次数:20906 次
package process;
public class pcb {
static final int Running=1;
static final int Ready=2;
static final int Waiting=3;
private String processname;
private int runtime; //生存周期
private int prority; //优先级
private int processstate; //状态
private int pcbflag; //暂定
public pcb(String name,int time,int pro)
{
this.processname=name;
this.runtime=time;
this.prority=pro;
}
public pcb()
{
pcbflag=0;
}
public void setprocessname(String name)
{
this.processname=name;
}
public String getprocessname()
{
return processname;
}
public void setruntime(int time)
{
this.runtime=time;
}
public int getruntime()
{
return runtime;
}
public void setprority(int pro)
{
this.prority=pro;
}
public int getprority()
{
return prority;
}
public void setprocessstate(int state)
{
this.processstate=state;
}
public String getprocessstate()
{
String s=new String();
if(this.processstate==1)
{
s="runing";
}
else if(this.processstate==2)
{
s="ready";
}
else if(this.processstate==3)
s="waiting";
return s;
}
}
package process;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class Main {
private JButton startbutton; //开始
private JButton newbutton; //新建
private JLabel namelabel;
private JLabel proritylabel;
private JLabel timelabel;
private JLabel readylabel;
private JLabel runinglabel;
private JTable readytable;
private JTable runingtable;
private JTextField nametext;
private JTextField timetext;
private JComboBox proritycom; //优先级设置
private JPanel newpanel;
private JPanel readypanel;
private JScrollPane readysp;
private JScrollPane runingsp;
Vector waitingvectorname;
pcb []readyarray;
pcb []newarray;
Object[][] readydata;
Object[][] runingdata;
int first;
int end;
int count=0; //就绪队列中的进程数量
pcb a;
pcb test;
public Main()
{
a=new pcb();
first=0;
end=0;
JFrame jf=new JFrame("进程调度");
Container c=jf.getContentPane();
c.setLayout(null);
newpanel=new JPanel();
newpanel.setLayout(null);
readypanel=new JPanel();
readypanel.setLayout(null);
startbutton=new JButton("开始");
newbutton=new JButton("新建进程");
namelabel=new JLabel("进程名");
proritylabel=new JLabel("优先级");
timelabel=new JLabel("生存期");
readylabel=new JLabel("就绪队列");
runinglabel=new JLabel("运行进程");
nametext=new JTextField();
timetext=new JTextField();
proritycom=new JComboBox();
readyarray=new pcb[8];
waitingvectorname=new Vector();
readydata=new Object[8][4];
runingdata=new Object[1][3];
String []col1={"进程","生存期","优先级","状态"};
String []col2={"进程","生存期","优先级"};
readytable=new JTable(readydata,col1);
readytable.setEnabled(false);
runingtable=new JTable(runingdata,col2);
runingtable.setEnabled(false);
runingsp=new JScrollPane();
readysp=new JScrollPane();
readysp.getViewport().add(readytable);
runingsp.getViewport().add(runingtable);
runingtable.setRowHeight(22);
readytable.setRowHeight(22);
for(int i=1;i<=10;i++)
proritycom.addItem(i);
newpanel.setSize(450,100);
newpanel.setLocation(0,10);
namelabel.setSize(80,20);
namelabel.setLocation(10,5);
nametext.setSize(100,25);
nametext.setLocation(10,30);
proritylabel.setSize(80,20);
proritylabel.setLocation(140,5);
proritycom.setSize(100,25);
proritycom.setLocation(140,30);
timelabel.setSize(80,20);
timelabel.setLocation(280,5);
timetext.setSize(100,25);
timetext.setLocation(280,30);
newbutton.setSize(120,20);
newbutton.setLocation(140,80);
readysp.setSize(400,100);
readysp.setLocation(10,30);
runingsp.setSize(400,43);
runingsp.setLocation(10,250);
readypanel.setSize(450,410);
readypanel.setLocation(0,120);
readylabel.setSize(100,22);
readylabel.setLocation(10,2);
startbutton.setSize(80,20);
startbutton.setLocation(147,350);
runinglabel.setSize(100,20);
runinglabel.setLocation(10,200);
c.add(newpanel);
newpanel.add(namelabel);
newpanel.add(nametext);
newpanel.add(proritylabel);
newpanel.add(proritycom);
newpanel.add(timelabel);
newpanel.add(timetext);
newpanel.add(newbutton);
readypanel.add(runingsp);
readypanel.add(readysp);
readypanel.add(readylabel);
readypanel.add(runinglabel);
readypanel.add(startbutton);
c.add(readypanel);
jf.setSize(450,550);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
startbutton.addActionListener(new MyActionListener());
newbutton.addActionListener(new MyActionListener());
}
class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
public static void main(String[] args) {
new Main();
}
}