sleep(1000);
item=(String)mode.getSelectedItem(); jsp0.setViewportView(runprocess); jsp1.setViewportView(ready);
jsp2.setViewportView(interrupted);
jsp3.setViewportView(finish); if(active){
controll.setText(\暂停运行\ }
else{
controll.setText(\开始运行\
} }
}catch(InterruptedException e) { e.printStackTrace(); }
} }
public void actionPerformed(ActionEvent e){ //事件响应
if(e.getSource()==createprocess){ CreateProcess(); }
else if(e.getSource()==exit){ closeOperation(); }
else if(e.getSource()==save){ save(); }
else if(e.getSource()==wakeup){ wakeup();
}
else if(e.getSource()==interrupt){
if(runData.isEmpty()){
JOptionPane.showMessageDialog(null, \没有运行进程,阻塞失败!\\注意\ }
else{
stop=true; }
}
else if(e.getSource()==controll){ if(active){
active=false;
controll.setText(\开始运行\ } else{
active=true;
controll.setText(\暂停进程\ } } }
@SuppressWarnings(\ public void wakeup(){
Vector
selected=interrupted.getSelectedRow(); if(selected<=-1||selected>=waitData.size())
JOptionPane.showMessageDialog(null, \请先选择要唤醒的进程!\\警告\ else{
ident=(Integer)interrupted.getValueAt(selected,0); for(int i=0;i temp=(Vector)waitData.get(i); identy=(Integer)temp.get(0); if(ident==identy){ waitData.removeElementAt(i); break; } } temp.removeElementAt(4); FCFS.addElement(temp); operation(); } } public void closeOperation(){ if(times==0){ Object[] options = {\是\否\取消\ int response=JOptionPane.showOptionDialog(null, \您还未保存结果,是否保存后再 退 出 系 统 ? \ \ 友 情 提 示 \ if(response==0) { save(); frame.dispose(); } else if(response==1) { frame.dispose(); } else if(response==2) { } } else{ frame.dispose(); } } public void save(){ String str=new String(); String f=new String(); times++; for(int i=0;i str=str+\ for(int j=0;j str=str+\ \alueAt(i,j).toString(); } } f=\王慧娟_1928105_Result\ try{ File file=new File(f); FileWriter result=new FileWriter(file); result.write(str); result.close(); }catch(IOException e){ JOptionPane.showMessageDialog(null, \对不起,结果保存失败!\\保存提示\ } JOptionPane.showMessageDialog(null, \恭喜您,运行结果已保存至相同路径下的<王慧娟>txt文件中!\保存提示\TION_MESSAGE); } //----------------------------------------------------------------------------- public void CreateProcess(){ //创建进程 PCB process; Vector runT=outputruntime(); if(runT<=0){ process=new PCB(); process.inputID(id); id++; } else{ process=new PCB(runT,pri); process.inputID(id); id++; } allData.addElement(process); Integer id=new Integer(process.getID()); Integer priority=new Integer(process.getPriority()); String createTime=new String(process.getCreateTime()); Integer runTime=new Integer(process.getRunTime()); Integer counter=new Integer(process.getCounter()); temp.addElement(id); temp.addElement(priority); temp.addElement(createTime); temp.addElement(runTime); temp.addElement(counter); FCFS.addElement(temp); operation(); } //-------------------------------------------------------------------------------- private class MTable extends JTable{ //表格设置 /** * */ private static final long serialVersionUID = 1L; public MTable(Vector super(rowData,columnNames); } public JTableHeader getTableHeader(){ JTableHeader tableHeader=super.getTableHeader(); tableHeader.setReorderingAllowed(false); DefaultTableCellRenderer hr=(DefaultTableCellRenderer)tableHeader.getDefaultRenderer(); hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return tableHeader; } public TableCellRenderer getDefaultRenderer(Class> columnClass){ DefaultTableCellRenderer cr=(DefaultTableCellRenderer)super.getDefaultRenderer(columnClass); cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return cr; } public boolean isCellEditable(int row,int column){ return false; } } } //-------------------------------------------------------------------------------------------------------- import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import java.util.*; import java.io.*; public class MainProgramme implements ActionListener{ int pri=5; //存放所选择的优先级 String item; //存放所选择的模式 int flag=0; //当前运行进程是从flag级就绪队列获得 Vector Vector Vector