📄 mainframe.java
字号:
package design;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
public class MainFrame extends JFrame {
JScrollPane jScrollPane1 = new JScrollPane();
JMenu controljMenu = new JMenu();
JMenu setjMenu = new JMenu();
JMenuItem exitjMenuItem = new JMenuItem();
JMenu filejMenu = new JMenu();
JMenuBar jMenuBar1 = new JMenuBar();
JTable jTable1 = new JTable();
JMenuItem startjMenuItem = new JMenuItem();
BorderLayout borderLayout1 = new BorderLayout();
JMenuItem pausejMenuItem = new JMenuItem();
JMenuItem stopjMenuItem = new JMenuItem();
JMenuItem stopProcessjMenuItem = new JMenuItem();
JMenuItem setMemoryjMenuItem = new JMenuItem();
JMenuItem setSourcejMenuItem = new JMenuItem();
JMenuItem setProcessTimerjMenuItem = new JMenuItem();
JMenuItem savejMenuItem = new JMenuItem();
JMenuItem loadjMenuItem = new JMenuItem();
JPanel jPanel1 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
JLabel jLabel1 = new JLabel();
JLabel processStatejLabel = new JLabel();
JMenu helpjMenu = new JMenu();
JMenuItem explainjMenuItem = new JMenuItem();
JMenuItem userjMenuItem = new JMenuItem();
JMenuItem aboutjMenuItem = new JMenuItem();
//TableColumnModel model=new TableColumnModel();
public MainFrame() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.getContentPane().setLayout(borderLayout1);
controljMenu.setText("控制");
setjMenu.setText("设置");
exitjMenuItem.setToolTipText("");
exitjMenuItem.setText("退出");
exitjMenuItem.addActionListener(new MainFrame_exitjMenuItem_actionAdapter(this));
filejMenu.setText("文件");
jMenuBar1.setBounds(new java.awt.Rectangle(0, 0, 300, 30));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocale(java.util.Locale.getDefault());
this.setJMenuBar(jMenuBar1);
this.setResizable(true);
this.setState(Frame.NORMAL);
startjMenuItem.setText("开始模拟");
pausejMenuItem.setText("暂停");
stopjMenuItem.setText("停止模拟");
stopProcessjMenuItem.setText("停止产生进程");
setMemoryjMenuItem.setText("内存设置");
setSourcejMenuItem.setText("资源设置");
setProcessTimerjMenuItem.setText("进程设置");
savejMenuItem.setText("保存设置");
loadjMenuItem.setText("载入设置");
jPanel1.setLayout(borderLayout2);
jLabel1.setFont(new java.awt.Font("Dialog", 0, 11));
jLabel1.setForeground(Color.red);
jLabel1.setText("09120016 200109331 李天国");
processStatejLabel.setText("共有0个进程,0个队列中");
helpjMenu.setText("帮助");
explainjMenuItem.setText("程序说明");
userjMenuItem.setText("帮助主题");
aboutjMenuItem.setText("关于");
this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
this.getContentPane().add(jPanel1, BorderLayout.SOUTH);
jPanel1.add(jLabel1, BorderLayout.EAST);
jPanel1.add(processStatejLabel, BorderLayout.WEST);
this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
this.getContentPane().add(jScrollPane1, null);
filejMenu.add(savejMenuItem);
filejMenu.add(loadjMenuItem);
filejMenu.addSeparator();
filejMenu.add(exitjMenuItem);
jMenuBar1.add(filejMenu);
jMenuBar1.add(controljMenu);
jMenuBar1.add(setjMenu);
jMenuBar1.add(helpjMenu);
controljMenu.add(startjMenuItem);
controljMenu.add(pausejMenuItem);
controljMenu.addSeparator();
controljMenu.add(stopProcessjMenuItem);
controljMenu.addSeparator();
controljMenu.add(stopjMenuItem);
setjMenu.add(setMemoryjMenuItem);
setjMenu.add(setSourcejMenuItem);
setjMenu.add(setProcessTimerjMenuItem);
helpjMenu.add(explainjMenuItem);
helpjMenu.add(userjMenuItem);
helpjMenu.addSeparator();
helpjMenu.add(aboutjMenuItem);
//-------------------------------------------------------------->>>>
this.setSize(new Dimension(542, 368));
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
this.setLocation(screenSize.width/2-frameSize.width/2,screenSize.height/2-frameSize.height/2);
}
void exitjMenuItem_actionPerformed(ActionEvent e) {
System.exit(0);
}
public void setTable(Sys_process sp){
Object[][] p;
int x=8;
int waitCount=sp.waiting_List.size();
int y=sp.running_List.size();
p=new Object[waitCount+y+1][x];
p[0][0]="所有进程";
p[0][1]="--";
p[0][2]="--";
p[0][3]=new Integer(sp.sys_memory_size);
p[0][4]=new Integer(sp.s_resource.resourceHave[1]);
p[0][5]=new Integer(sp.s_resource.resourceHave[2]);
p[0][6]=new Integer(sp.s_resource.resourceHave[3]);
p[0][7]="--";
for(int i=0;i<=y-1;i++){
process temp=(process)sp.running_List.get(i);
p[i+1][0]=temp.getID();
p[i+1][1]=new Integer(temp.getRunnigtime());
p[i+1][2]=new Integer(temp.getMemoryStart());
p[i+1][3]=new Integer(temp.getMemorySize());
p[i+1][4]=temp.r.resourceGetted[1]+"/"+temp.r.resourceNeeded[1];
p[i+1][5]=temp.r.resourceGetted[2]+"/"+temp.r.resourceNeeded[2];
p[i+1][6]=temp.r.resourceGetted[3]+"/"+temp.r.resourceNeeded[3];
p[i+1][7]=temp.getState();
}
for(int i=0;i<=waitCount-1;i++){
process temp=(process)sp.waiting_List.get(i);
p[y+i+1][0]=temp.getID();
p[y+i+1][1]="--";
p[y+i+1][2]="--";
p[y+i+1][3]=new Integer(temp.getMemorySize());
p[y+i+1][4]=temp.r.resourceGetted[1]+"/"+temp.r.resourceNeeded[1];
p[y+i+1][5]=temp.r.resourceGetted[2]+"/"+temp.r.resourceNeeded[2];
p[y+i+1][6]=temp.r.resourceGetted[3]+"/"+temp.r.resourceNeeded[3];
p[y+i+1][7]=temp.getState();
}
/*p=new Object[][]{{"所有进程","--","--","256","3","2","5"},
{"process1",new Integer(30),new Integer(0),new Integer(50),"1/1","0/0","1/1"},
{"process2",new Integer(25),new Integer(50),new Integer(75),"0/0","1/1","2/2"},
{"process3",new Integer(22),new Integer(125),new Integer(50),"2/2","1/1","1/1"},
{"process4",new Integer(20),new Integer(175),new Integer(50),"0/1","0/1","1/2"}};*/
String[] n={"进程","运行时间","内存起始","内存","资源1","资源2","资源3","运行状态"};
//p=new Object[][]{{"","","","","","",""}};
jTable1 = new JTable(p,n);
jTable1.setEnabled(false);
jTable1.setColumnSelectionAllowed(true);
jScrollPane1.getViewport().add(jTable1, null);
processStatejLabel.setText("共有"+(waitCount+y)+"个进程,"+waitCount+"个队列中");
}
}
class MainFrame_exitjMenuItem_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_exitjMenuItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.exitjMenuItem_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -