资源简介

用java编写的模拟操作系统进程调度程序,使用了swing组件,具有十分友好的调度界面,含三种调度算法分别是:先进先出、基于优先度优先和最短执行时间调度算法

资源截图

代码片段和文件信息

package com.Demo_2;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.*;
import java.util.linkedList;
import java.util.Random;

//程序启动界面

public  class JWindowDemo extends JWindow implements Runnable {
  Thread splashThread;  //进度条更新线程
  JProgressBar progress; //进度条
  
  public JWindowDemo() {
    Container container=getContentPane(); //得到容器
    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  //设置光标
    URL url = getClass().getResource(“未.jpg“); //图片的位置
    if(url != null){
      container.add(new JLabel(new ImageIcon(url))BorderLayout.CENTER);  //增加图片
    }
    progress = new JProgressBar(1100); //实例化进度条
    progress.setStringPainted(true); //描绘文字
    progress.setString(“加载程序中请稍候......“);  //设置显示文字
    progress.setBackground(Color.blue);  //设置背景色
    container.add(progressBorderLayout.SOUTH);  //增加进度条到容器上

    Dimension screen = getToolkit().getScreenSize();  //得到屏幕尺寸
    pack(); //窗口适应组件尺寸
    setLocation((screen.width-getSize().width)/2(screen.height-getSize().height)/2); //设置窗口位置
  }

  public void start(){
    this.toFront();  //窗口前端显示
    splashThread=new Thread(this);  //实例化线程
    splashThread.start();  //开始运行线程
  }

  public void run(){
    setVisible(true); //显示窗口
    try {
      for (int i=0;i<100;i++){
        Thread.sleep(80); //线程休眠
        progress.setValue(progress.getValue()+1); //设置进度条值
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    dispose(); //释放窗口
    showframe(); //运行主程序
  }

void showframe(){

  win w=new win();
w.setVisible(true);
       
        w.addWindowListener(new WindowAdapter()
        {
          public void windowClosing(WindowEvent e)
           {
            System.exit(0);
           }
        });
  }

  //进程类
  class Process{ 
   private String  name; 
   private int     state;     //0 表示就绪 1等待 
   private int     sort;      //优先级,sort越大优先级越高随机产生(1-5) 
   private int     time;      //执行时间 
   private Random rd=new Random();      //用于产生随机数 
 
   Process (String in_name){ 
         name=in_name; 
         time=rd.nextInt(20)+1;         //随机产生0到19的整数 
         sort=rd.nextInt(5)+1; 
   } 
   int Begin_state(){ 
 
      state=rd.nextInt(2);          //返回随机产生的0或1,用于判断处于就绪还是等待队列 
      return state; 
   } 
   String getName(){ 
     return name;  
   } 
   int getTime(){ 
     return time; 
   } 
   void setTime(int inputtime){ 
      time=inputtime; 
   } 
   int getSort(){ 
      return sort; 
   } 
   void print(){ 
      System.out.println(“进程名 “+name+“  “+“执行所需时间“+time+“ms“+“\t\t“+“进程状态: “+state+“\t“+“优先数  “+sort);
      
   } 
   String display(){
   String d=“进程名 “+name+“  “+“执行所需时间“+time+“ms“+“\t\t“+“进程状态: “+state+“\t“+“优先数  “+sort;
   return d;
   }
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       19227  2012-12-05 21:07  进程调度\JWindowDemo.java
     文件        4882  2012-12-05 20:22  进程调度\未.jpg
     文件      120044  2012-12-05 21:26  进程调度\进程调度.exe
     目录           0  2013-01-13 10:39  进程调度\

评论

共有 条评论