📄 systemmain.java
字号:
package os;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Date;
import java.util.Random;
import java.util.Vector;
import javax.swing.Timer;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
public class SystemMain extends JFrame {
static ProcessCtrl ctrl;
/** Creates new form SystemMain */
public SystemMain() {
initComponents();
ctrl=new ProcessCtrl();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">
private void initComponents() {
String []io={"禁止IO堵塞","允许IO堵塞"};
ifio=new JComboBox(io);
ifio.addItemListener(iolistener);
time=new Timer(5,bb);
buttonGroup1 = new javax.swing.ButtonGroup();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
Run = new JLabel();
jPanel5 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
WaitRun = new JPanel();
jPanel6 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
jPanel10 = new javax.swing.JPanel();
FirstDo = new javax.swing.JRadioButton();
ShortWorkDo = new javax.swing.JRadioButton();
HighPriorityDo = new javax.swing.JRadioButton();
DivideTime = new javax.swing.JRadioButton();
DivideAndHighPriority = new javax.swing.JRadioButton();
jPanel7 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
Wait = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
Complete = new javax.swing.JPanel();
jPanel9 = new javax.swing.JPanel();
HandProcess = new javax.swing.JButton();
RandomProcess = new javax.swing.JButton();
DynamicModifyPriority = new javax.swing.JButton();
DynamicModifyPriority.addActionListener(pri);
Start = new javax.swing.JButton("Start");
getContentPane().setLayout(new java.awt.GridLayout(2, 3));
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setName("frame");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
jPanel2.setLayout(new java.awt.BorderLayout());
jPanel2.setBorder(new javax.swing.border.EtchedBorder());
jLabel1.setBackground(new java.awt.Color(102, 102, 255));
jLabel1.setText("\u8fdb\u7a0b\u8fd0\u884c");
jLabel1.setAutoscrolls(true);
jLabel1.setOpaque(true);
jPanel2.add(jLabel1, java.awt.BorderLayout.NORTH);
Run.setBackground(new java.awt.Color(255, 255, 255));
Run.setForeground(new java.awt.Color(102, 102, 255));
jPanel2.add(Run, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel2);
jPanel5.setLayout(new java.awt.BorderLayout());
jPanel5.setBorder(new javax.swing.border.EtchedBorder());
jLabel3.setBackground(new java.awt.Color(102, 102, 255));
jLabel3.setText("\u5c31\u7eea\u961f\u5217");
jLabel3.setOpaque(true);
jPanel5.add(jLabel3, java.awt.BorderLayout.NORTH);
WaitRun.setLayout(new javax.swing.BoxLayout(WaitRun, javax.swing.BoxLayout.Y_AXIS));
Wait.setLayout(new javax.swing.BoxLayout(Wait, javax.swing.BoxLayout.Y_AXIS));
Complete.setLayout(new javax.swing.BoxLayout(Complete, javax.swing.BoxLayout.Y_AXIS));
WaitRun.setBackground(new java.awt.Color(255, 255, 255));
jPanel5.add(WaitRun, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel5);
jPanel6.setLayout(new java.awt.BorderLayout());
jLabel9.setBackground(new java.awt.Color(102, 102, 102));
jLabel9.setText("\u8c03\u5ea6\u7b56\u7565");
jLabel9.setOpaque(true);
jPanel6.add(jLabel9, java.awt.BorderLayout.NORTH);
jPanel10.setLayout(new java.awt.GridLayout(5, 1));
buttonGroup1.add(FirstDo);
FirstDo.setText("\u5148\u6765\u5148\u670d\u52a1");
FirstDo.addActionListener(ae);
jPanel10.add(FirstDo);
buttonGroup1.add(ShortWorkDo);
ShortWorkDo.setText("\u77ed\u4f5c\u4e1a\u4f18\u5148");
ShortWorkDo.addActionListener(ae);
jPanel10.add(ShortWorkDo);
buttonGroup1.add(HighPriorityDo);
HighPriorityDo.setText("\u9ad8\u4f18\u5148\u7ea7\u4f18\u5148(\u9759\u6001)");
HighPriorityDo.addActionListener(ae);
jPanel10.add(HighPriorityDo);
buttonGroup1.add(DivideTime);
DivideTime.setText("\u5206\u65f6");
DivideTime.addActionListener(ae);
jPanel10.add(DivideTime);
jPanel10.add(ifio);
jPanel6.add(jPanel10, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel6);
jPanel7.setLayout(new java.awt.BorderLayout());
jPanel7.setBorder(new javax.swing.border.EtchedBorder());
jLabel5.setBackground(new java.awt.Color(102, 102, 255));
jLabel5.setText("\u7b49\u5f85\u961f\u5217");
jLabel5.setOpaque(true);
jPanel7.add(jLabel5, java.awt.BorderLayout.NORTH);
Wait.setBackground(new java.awt.Color(255, 255, 255));
jPanel7.add(Wait, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel7);
jPanel8.setLayout(new java.awt.BorderLayout());
jPanel8.setBorder(new javax.swing.border.EtchedBorder());
jLabel7.setBackground(new java.awt.Color(102, 102, 255));
jLabel7.setText("\u5b8c\u6210\u8fdb\u7a0b");
jLabel7.setOpaque(true);
jPanel8.add(jLabel7, java.awt.BorderLayout.NORTH);
Complete.setBackground(new java.awt.Color(255, 255, 255));
jPanel8.add(Complete, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel8);
jPanel9.setLayout(new java.awt.GridLayout(4, 1));
HandProcess.setText("\u624b\u52a8\u751f\u6210\u4e00\u4e2a\u8fdb\u7a0b");
HandProcess.setAutoscrolls(true);
HandProcess.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HandProcessActionPerformed(evt);
}
});
jPanel9.add(HandProcess);
RandomProcess.setText("\u968f\u673a\u751f\u6210\u4e00\u4e2a\u8fdb\u7a0b");
RandomProcess.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
RandomProcessActionPerformed(evt);
}
});
jPanel9.add(RandomProcess);
DynamicModifyPriority.setText("\u52a8\u6001\u4fee\u6539\u8fdb\u7a0b\u4f18\u5148\u7ea7");
DynamicModifyPriority.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DynamicModifyPriorityActionPerformed(evt);
}
});
jPanel9.add(DynamicModifyPriority);
//Start.setText("\u5f00\u59cb\u8fd0\u884c");
Start.addActionListener(bb);
jPanel9.add(Start);
getContentPane().add(jPanel9);
pack();
}
// </editor-fold>
private void HighPriorityDoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
}
/**
* 随机生成一个进程
*
*/
private void RandomProcessActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
Random generator=new Random();
int priority=(generator.nextInt(15))%10+1;
int ConsultTime=(generator.nextInt(30))%10+2;
Start.setText("");
JTable table=ctrl.createAProcess(priority,ConsultTime);
System.out.println(table);
WaitRun.removeAll();
WaitRun.add(new JScrollPane(table));
WaitRun.setVisible(true);
Start.setText("Start");
}
private void formWindowClosing(java.awt.event.WindowEvent evt) {
System.exit(0);// TODO 将在此处添加您的处理代码:
}
private void DynamicModifyPriorityActionPerformed(java.awt.event.ActionEvent evt) {
}
void slow(){
long time=new Date().getTime()+1000;
while(true){
if(new Date().getTime()>time) break;
}
}
boolean Io(){//判断IO端口是否有空,若有空将等待队列清空,入就绪队列
if(noio==1) return true;
Random generator=new Random();
int io=(generator.nextInt(4))%10;
if(io>=1) {ctrl.WaitToRun();return true;}
else return false;
}
//ctrl.createAProcess(Integer.parseInt(v.get(0).toString()),Integer.parseInt(v.get(1).toString()),Integer.parseInt(v.get(3).toString()));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -