📄 processmanager.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.JOptionPane;
import javax.swing.event.*;
import javax.swing.border.*;
import java.util.*;
import java.util.Calendar;
import java.util.Random;
public class ProcessManager extends JFrame implements ActionListener{
int add1=0;
int inputname=0;
public String a="in put the command!";
public Vector v1=new Vector();
public Vector v2=new Vector();
public Vector v3=new Vector();
public Vector v4=new Vector();
public JList list1=new JList(v1);
public JList list2=new JList(v2);
public JList list3=new JList(v3);
public JList list4=new JList(v4);
public JTextField field=new JTextField(62);
public JTextArea area=new JTextArea(a,2,70);
public JPanel p0=new JPanel(new GridLayout(5,1));
public JPanel p1=new JPanel(new GridLayout(1,2));
public JPanel p2=new JPanel(new GridLayout(1,2));
public JPanel p3=new JPanel();
public JPanel p4=new JPanel(new GridLayout(2,3));
public JPanel p5=new JPanel(new GridLayout(1,2));
public JPanel p6=new JPanel();
public JScrollPane p=new JScrollPane(area);
public JScrollPane pA=new JScrollPane(list1);
public JScrollPane pB=new JScrollPane(list2);
public JScrollPane pC=new JScrollPane(list3);
public JScrollPane pD=new JScrollPane(list4);
public JMenuItem mi1=new JMenuItem("Again");
public JMenuItem mi3=new JMenuItem("Quit");
public JMenuItem mi2=new JMenuItem("Command");
public JMenuBar me=new JMenuBar();
public JMenu m1=new JMenu("Operatinon");
public JMenu m2=new JMenu("Help");
public JPopupMenu change1=new JPopupMenu();
public JMenuItem change1Creat=new JMenuItem("Creat");
public JPopupMenu change2=new JPopupMenu();
public JMenuItem change2execute=new JMenuItem("Execute");
public JPopupMenu change3=new JPopupMenu();
public JMenuItem change3ready=new JMenuItem("Ready");
public JPopupMenu change4=new JPopupMenu();
public JMenuItem change4block=new JMenuItem("Block");
public JMenuItem change4exit=new JMenuItem("Exit");
public JMenuItem change4timeout=new JMenuItem("TimeOut");
ImageIcon image=new ImageIcon("javalogo52x88.gif");
JLabel dip=new JLabel(image);
JLabel copyright=new JLabel("");
JButton b1=new JButton("Creat");
JButton b2=new JButton("Bloke");
JButton b3=new JButton("Execute");
JButton b4=new JButton("Weak");
JButton b5=new JButton("TimeOut");
JButton b6=new JButton("Exit");
JDialog d=new JDialog(this,"调度算法");
JRadioButton b7=new JRadioButton("FIFS");
JRadioButton b8=new JRadioButton("STF");
JRadioButton b9=new JRadioButton("TO");
ButtonGroup aa=new ButtonGroup();
String suanfa=new String();
public ProcessManager(){
super("ProcessManager");
for(int i=0;i<10;i++){
v1.add("Blank PCB");
}
pA.setBorder(new TitledBorder(new LineBorder(Color.gray,2),"BLANK"+" "+v1.size()));
pB.setBorder(new TitledBorder(new LineBorder(Color.gray,2),"READY"+" "+v2.size()));
pC.setBorder(new TitledBorder(new LineBorder(Color.gray,2),"BLOCK"+" "+v3.size()));
pD.setBorder(new TitledBorder(new LineBorder(Color.gray,2),"EXECUTE"+" "+v4.size()));
area.setFont(list1.getFont());
area.setLineWrap(true);
area.setWrapStyleWord(true);
p.setBorder(new TitledBorder(new LineBorder(Color.gray,2),"COMMAND..."));
field.setBorder(new LineBorder(Color.gray,2));
p1.add(pA);
p1.add(pB);
p2.add(pC);
p2.add(pD);
p3.add(field);
p3.add(p5);
p4.add(b1);
p4.add(b2);
p4.add(b3);
p4.add(b4);
p4.add(b5);
p4.add(b6);
p5.add(p4);
p5.add(dip);
p6.add(copyright);
p0.add(p1);
p0.add(p2);
p0.add(p);
p0.add(p3);
p0.add(p6);
this.add(p0);
setJMenuBar(me);
me.add(m1);
me.add(m2);
m1.add(mi1);
m1.addSeparator();
m1.add(mi3);
m2.add(mi2);
change1.add(change1Creat);
change2.add(change2execute);
change3.add(change3ready);
change4.add(change4block);
change4.add(change4timeout);
change4.add(change4exit);
list1.addMouseListener(new ChangPopupListener(list1));
list2.addMouseListener(new ChangPopupListener(list2));
list3.addMouseListener(new ChangPopupListener(list3));
list4.addMouseListener(new ChangPopupListener(list4));
field.addActionListener(this);
mi2.addActionListener(this);
mi1.addActionListener(this);
mi3.addActionListener(this);
change1Creat.addActionListener(this);
change2execute.addActionListener(this);
change3ready.addActionListener(this);
change4block.addActionListener(this);
change4exit.addActionListener(this);
change4timeout.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
}
public class ChangPopupListener extends MouseAdapter{
private JComponent owner;
public ChangPopupListener(JComponent _owner){
owner=_owner;
}
public void mousePressed(MouseEvent me){
if(SwingUtilities.isRightMouseButton(me))
if(owner==list1)
ProcessManager.this.change1.show(owner,me.getX(),me.getY());
else if(owner==list2)
ProcessManager.this.change2.show(owner,me.getX(),me.getY());
else if(owner==list3)
ProcessManager.this.change3.show(owner,me.getX(),me.getY());
else if(owner==list4)
ProcessManager.this.change4.show(owner,me.getX(),me.getY());
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==field){
handle();
if(add1==1)
add();
}
if(e.getSource()==mi1){
init();
}
if(e.getSource()==mi3){
System.exit(0);
}
if(e.getSource()==change1Creat){
creat();
}
if(e.getSource()==change2execute){
execute();
}
if(e.getSource()==change3ready){
weak();
}
if(e.getSource()==change4block){
block();
}
if(e.getSource()==change4exit){
exit();
}
if(e.getSource()==change4timeout){
timeout();
}
if(e.getSource()==mi2){
JOptionPane.showMessageDialog(this,">c Creat a process\n>p Execute a process\n>t Time is out\n>b Block a process\n>w Weak up a process\n>e Finish a process\nYou alse operate with Mouse only!","Help",JOptionPane.PLAIN_MESSAGE);
}
if(e.getSource()==b1){
creat();
}
if(e.getSource()==b2){
block();
}
if(e.getSource()==b3){
execute();
}
if(e.getSource()==b4){
weak();
}
if(e.getSource()==b5){
timeout();
}
if(e.getSource()==b6){
exit();
}
if(e.getSource()==b7){
d.dispose();
suanfa="FIFS";
}
if(e.getSource()==b8){
d.dispose();
suanfa="STF";
}
if(e.getSource()==b9){
d.dispose();
suanfa="TO";
}
}
protected void handle(){
if(field.getText().length()!=0){
if(field.getText().compareTo("c")==0){
areaupdata();
if(!v1.isEmpty()){
area.append("\n>in put the name of the process");
inputname=1;
v1.remove(0);
add1=1;
}
else{JOptionPane.showMessageDialog(this,"There is no blank PCB!","message",JOptionPane.ERROR_MESSAGE );
areaupdata();
}
}
else if(field.getText().compareTo("p")==0){
add1=0;
if(v4.isEmpty()){
if(!v2.isEmpty()){
v4.add(v2.remove(0));
numberupdata();
areaupdata();
listupdata();
}
else{JOptionPane.showMessageDialog(this,"There is no Ready Process!","message",JOptionPane.ERROR_MESSAGE );
areaupdata();
}
}
else{JOptionPane.showMessageDialog(this,"A Process is Executing!","message",JOptionPane.ERROR_MESSAGE );
areaupdata();
}
}
else if(field.getText().compareTo("t")==0){
add1=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -