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

📄 mainframe.java

📁 一个整体操作系统的主要功能的计算机模拟实现(含进程、内存与设备管理)
💻 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 + -