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

📄 processmanager.java

📁 操作系统里的进程描述
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -