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

📄 systemmain.java

📁 操作系统进程调度算法java实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -