📄 mainframe.java
字号:
package design;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import java.util.*;/** * <p>Title: 操作系统课程设计</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author 胡波 * @version 1.0 */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("Powered by 胡波 20000811026@2003年7月5日"); 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 + -