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

📄 mainframe.java

📁 进程调度的设计与实现
💻 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 + -