📄 processtable4.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
public class ProcessTable4 implements ActionListener
{
// public AddFrame add ;
int count=0;
public int k=0;
public int maxtime=0;
public int maxmemory = 100;
public int alocate = 0;
JTable table1,table2,table3;
DefaultTableModel defaultModel1 = null;
DefaultTableModel defaultModel2 = null;
DefaultTableModel defaultModel3 = null;
String s1="ready",s2="waiting";
public JPanel panel1,panel2,panel3;
public JLabel[] lab = new JLabel[4];
public JLabel[] lab1 = new JLabel[4];
public ProcessTable4(){
JFrame f = new JFrame("Process Scheduling");
Container pane = f.getContentPane();
JTable t= null;
JButton b1,b2,b3,b4,b5,b6,b7;
pane.setLayout(new GridLayout(2,1));
panel1 = new JPanel();
Object[][] process1={};
String[] names = {"名称","时间片","优先数","主存大小"};
defaultModel1=new DefaultTableModel(process1,names);
table1=new JTable( defaultModel1);
//table1.setPreferredScrollableViewportSize(new Dimension(500,200));
JScrollPane sPane = new JScrollPane(table1);
JLabel readyLabel=new JLabel("就绪队列",JLabel.CENTER);
readyLabel.setBackground(Color.orange);
readyLabel.setOpaque(true);
readyLabel.setBorder(BorderFactory.createLineBorder(Color.magenta,10));
panel1.add(readyLabel);
panel1.add(sPane,BorderLayout.CENTER);
panel2 = new JPanel();
Object[][] process3={};
String[] names3 = {"始址","长度","状态"};
defaultModel3=new DefaultTableModel(process3,names3);
table3=new JTable(defaultModel3);
table3.setPreferredScrollableViewportSize(new Dimension(500,200));
JScrollPane sPane3 = new JScrollPane(table3);
JLabel lable3 = new JLabel("未分区表",JLabel.CENTER);
lable3.setBackground(Color.orange);
lable3.setOpaque(true);
lable3.setBorder(BorderFactory.createLineBorder(Color.magenta,10));
panel2.add(lable3);
panel2.add(sPane3,BorderLayout.CENTER);
panel3 = new JPanel();
Object[][] process2={};
String[] names2 = {"名称", "时间片", "优先数","主存大小"};
defaultModel2=new DefaultTableModel(process2,names);
table2=new JTable(defaultModel2);
//table2.setPreferredScrollableViewportSize(new Dimension(500,200));
JScrollPane sPane2 = new JScrollPane(table2);
JLabel waitLabel = new JLabel("等待队列",JLabel.CENTER);
waitLabel.setBackground(Color.pink);
waitLabel.setOpaque(true);
waitLabel.setBorder(BorderFactory.createLineBorder(Color.magenta,10));
panel3.add(waitLabel);
panel3.add(sPane2,BorderLayout.CENTER);
JPanel panel6 = new JPanel(new GridLayout(1,2));
JPanel panel7 = new JPanel(new GridLayout(6,1));
JPanel panel8 = new JPanel(new GridLayout(6,1));
JPanel panel5 = new JPanel(new BorderLayout(2,1));
JLabel lab4 = new JLabel("进程",SwingConstants.CENTER);
lab4.setBackground(Color.green);
lab4.setOpaque(true);
lab4.setVerticalAlignment(SwingConstants.CENTER);
lab4.setBorder(BorderFactory.createLineBorder(Color.cyan,5));
JLabel lab3 = new JLabel("操作系统", SwingConstants.CENTER);
lab3.setBackground(Color.BLUE);
lab3.setOpaque(true);
lab3.setVerticalAlignment(SwingConstants.CENTER);
lab3.setBorder(BorderFactory.createLineBorder(Color.cyan,5));
panel8.add(lab4);
panel8.add(lab3);
for(int i = 0;i<lab.length;i++){
lab[i] = new JLabel(" ", SwingConstants.CENTER);
lab[i].setVerticalAlignment(SwingConstants.CENTER);
lab[i].setBorder(BorderFactory.createLineBorder(Color.BLACK,2));
panel8.add(lab[i]);
}
JLabel lab41 = new JLabel("大小(K)",SwingConstants.CENTER);
lab41.setBackground(Color.green);
lab41.setOpaque(true);
lab41.setVerticalAlignment(SwingConstants.CENTER);
lab41.setBorder(BorderFactory.createLineBorder(Color.cyan,5));
JLabel lab5 = new JLabel("20k",SwingConstants.CENTER);
lab5.setBackground(Color.BLUE);
lab5.setOpaque(true);
lab5.setVerticalAlignment(SwingConstants.CENTER);
lab5.setBorder(BorderFactory.createLineBorder(Color.cyan,5));
panel7.add(lab41);
panel7.add(lab5);
for (int i = 0; i<lab1.length; i++){
/*lab[i] = new JLabel("操作系统", SwingConstants.CENTER);
lab1.setBackground(Color.BLUE);
lab1.setOpaque(true);*/
lab1[i] = new JLabel(" ", SwingConstants.CENTER);
lab1[i].setVerticalAlignment(SwingConstants.CENTER);
lab1[i].setBorder(BorderFactory.createLineBorder(Color.BLACK,2));
panel7.add(lab1[i]);
}
panel6.add(panel8);
panel6.add(panel7);
//panel7.add(new DrawingRect(10));
b1 = new JButton("运行");
b2 = new JButton("增加");
b3 = new JButton("退出");
b4 = new JButton("排序");
b5 = new JButton("[a]退出Add");
b5.setMnemonic('a');
panel5.add(b1,BorderLayout.EAST);
panel5.add(b2,BorderLayout.WEST);
panel5.add(b3,BorderLayout.SOUTH);
panel5.add(b4,BorderLayout.NORTH);
panel5.add(b5,BorderLayout.CENTER);
b1.addActionListener(this);
b3.addActionListener(this);
b2.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
JSplitPane panel4 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
false,panel5,panel6);
panel4.setDividerLocation(0.5);
panel4.setOneTouchExpandable(true);
panel4.setDividerSize(10);
JSplitPane spane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
false,panel1,panel2);
spane1.setDividerLocation(500);
JSplitPane spane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
false,panel3,panel4);
spane2.setDividerLocation(500);
pane.add(spane1);
pane.add(spane2);
f.setSize(1000,500);
f.show();
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("增加"))
{
//add = new AddFrame();
new AddFrame().setVisible(true);
}
else if(e.getActionCommand().equals("[a]退出Add")){
int a = Integer.parseInt(AddFrame.time.getText());
int b = Integer.parseInt(AddFrame.prioty.getText());
int c = Integer.parseInt(AddFrame.memory.getText());
count++;
if (count<4){
defaultModel1.addRow(new Object[]{AddFrame.PID.getText(),new Integer(a),new Integer(b),new Integer(c)});
}
else
defaultModel2.addRow(new Object[]{AddFrame.PID.getText(),new Integer(a),new Integer(b),new Integer(c)});
new AddFrame().setVisible(false);
}
else if (e.getActionCommand().equals("排序"))
{
table1.setAutoCreateColumnsFromModel(false);
// Sort the values in the second column of the model
// in descending order
int mColIndex1 = 2;
//int mColIndex2 = 2;
// boolean ascending = false;
sortColumn(defaultModel1, mColIndex1, false);
//sortColumn(defaultModel1, mColIndex2, ascending);
//Vector data1 =defaultModel1.getDataVector();
String[] memoryData1 = new String[defaultModel1.getRowCount()];
String[] processData1 = new String[defaultModel1.getRowCount()];
for (int i=0; i<memoryData1.length; i++) {
memoryData1[i] = defaultModel1.getValueAt(i,3).toString();
processData1[i] = defaultModel1.getValueAt(i,0).toString();
}
k++;//control the count
if(k==1){
for(int i = 0;i<memoryData1.length;i++ )
{
Object f = defaultModel1.getValueAt(i,3);
Object f1 = defaultModel1.getValueAt(i,0);
lab[i].setText(f1.toString());
lab1[i].setText(f.toString());
lab1[i].setBackground(Color.orange);
lab1[i].setOpaque(true);
}
//add the unalocate table
for (int i = 0 ;i<memoryData1.length;i++){
alocate += Integer.parseInt(memoryData1[i]);
}
int unalocate = maxmemory - alocate-20;
defaultModel3.addRow(new Object[]{new Integer(alocate+20),new Integer(unalocate),
new Integer(1)});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -