1 package System2; 2 3 import javax.swing.*; 4 5 import java.awt.*; 6 import java.awt.event.ActionEvent; 7 import java.awt.event.ActionListener; 8 import java.awt.event.KeyListener; 9 import java.util.*; 10 /** 11 * 作者:范铭祥 12 * 内容及功能: 显示框创造1.0 13 * 我将在这个类里 一:面板1:用来先显示一副图表示顺序和处理中 14 * 二:面板2:类1:用来显示要处理的项 接收 A在排队的颜色任务图 15 * B在处理中的颜色任务图 16 * 包含了四个类:1 PCB类 2先来先服类 17 * 3 短作业优先算法 4 响应比者高优先算法 18 * 注:以上均采用ArrayList集合的方法 19 * 四:面板4:2个按钮 1个Text文本框 20 * 按钮1对应每3个分页框 按钮2对应3个分页框 分别有三种不同的做法 21 * text文本接收 按钮一传来的页框号从而 获取相应的分页框信息 22 * 23 *第一次日志: 监听的事件处理方法变量是出不来,但方法可进进哦。 24 * 明天我就试在原类更新面板,因为用户是录完才点击开始按钮,所以不断刷新不影响用户 25 * 输入。 26 *第二次日志:当我做完了整个界面face2看完效果后,当时我就不乐意了,因为如果用户要在不同的面版上 27 *输入3次才可完全享受3中操作系统处理方法,最让我难受的是不能单独刷新面板的某一部分,所以我只能 28 *采用刷新JFrame的方法,终于实现了时间不断自动跳转但问题出现了,用户的输入接面也在不断刷新 29 */ 30 public class face3 extends JFrame implements ActionListener,Runnable{ 31 /*其它*/ int choose=0; 32 33 /*外围*/ JPanel jp0; 34 JSplitPane jsp;//可收缩面板 35 JTextArea jta; 36 JScrollPane gun;//设置滚动框 37 38 /*1*/ JLabel jlb1; 39 JPanel jp1; 40 41 /*2*/ JPanel jp2; 42 JPanel jp22; 43 JPanel jp222; 44 JLabel jlb2;//用来接替第二部分 45 JLabel[] no = new JLabel[11]; 46 JLabel[] lan= new JLabel[11]; 47 JLabel lan2; 48 public int all1; 49 int Atime=all1; 50 public int all2; 51 int now; 52 /*2x*/ 53 JPanel x2,x2_1,x2_2,x2_3; 54 JCheckBox jcb_1,jcb_2,jcb_3;//选择按钮 55 ButtonGroup bg;//only one选择组 56 57 /*3*/ JPanel jp_1;//属于 jp3 属于第三部分的分页框面板 58 59 // 60 /*以下部分很重要 是该系统一大部分 录入*/ 61 // 62 JPanel[] jp2a_1=new JPanel[12]; 63 JLabel[] jl2b_1=new JLabel[12];//打是X任务标签的 64 JLabel jl2c1_1[]=new JLabel[12]; 65 JLabel jl2c2_1[]=new JLabel[12]; 66 67 68 /*4*/ JPanel jp4,jp4x2; 69 JButton jb_1,jb_2; 70 public static final int one_ge = 50;//代表一幅图的宽度 71 72 public static void main(String[] args) 73 { 74 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 75 face3 face33=new face3(); 76 //启动face33线程 77 Thread t=new Thread(face33); 78 t.start(); 79 } 80 public face3() 81 { //全部在这定义 82 jp0=new JPanel(); 83 jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 84 /*可以伸缩*/jsp.setOneTouchExpandable(true); 85 jta=new JTextArea("!!!以后操作细节将在这里显示!!!\n"); 86 gun=new JScrollPane(jta); 87 jlb1=new JLabel(new ImageIcon("F:/text/pai.png")); 88 jp1=new JPanel(); 89 jp2=new JPanel(); 90 jp22=new JPanel(); 91 jp222=new JPanel(); 92 jlb2=new JLabel(Atime+"秒"); 93 jlb2.setBackground(Color.RED); 94 jlb2.setFont(new java.awt.Font("Dialog", 1, 77)); 95 jlb2.setForeground(Color.red); 96 x2=new JPanel(); 97 x2.setLayout(new BorderLayout()); 98 x2_1=new JPanel(); 99 x2_2=new JPanel();100 x2_3=new JPanel();101 jcb_1=new JCheckBox("先来先服务");102 jcb_2=new JCheckBox("短作业优先");103 jcb_3=new JCheckBox("响应比者高优先");104 //一定要把 jrb1 jrb2 放入到一个ButtonGroup105 ButtonGroup bg=new ButtonGroup();106 bg.add(jcb_1);107 bg.add(jcb_2);108 bg.add(jcb_3);109 x2_2.add(jcb_1);110 x2_2.add(jcb_2);111 x2_2.add(jcb_3);112 x2.add(x2_1,BorderLayout.WEST);113 x2.add(x2_2,BorderLayout.CENTER);114 x2.add(x2_3,BorderLayout.EAST);115 jp_1=new JPanel();116 jp_1.setLayout(new GridLayout(1,11)); 117 JTextField jtf21_1[]=new JTextField[12];118 JTextField jtf22_1[]=new JTextField[12];119 //第一复页面板120 for(int i=1;i<=11;i++)121 {122 jp2a_1[i]=new JPanel();123 jl2c1_1[i]=new JLabel("到达时间(秒)");124 jl2c1_1[i].setFont(new java.awt.Font("宋体", 1, 10));125 jl2c1_1[i].setForeground(Color.red);126 jl2c2_1[i]=new JLabel("运行时间(秒)");127 jl2c2_1[i].setFont(new java.awt.Font("宋体", 1, 10));128 jl2c2_1[i].setForeground(Color.blue);129 jtf21_1[i]=new JTextField(5); 130 jtf21_1[i].setFont(new java.awt.Font("宋体", 1, 35));131 jtf21_1[i].setForeground(Color.red);132 jtf22_1[i]=new JTextField(5);133 jtf22_1[i].setFont(new java.awt.Font("宋体", 1, 35));134 jtf22_1[i].setForeground(Color.blue);135 jp2a_1[i].setLayout(new GridLayout(5,1));136 137 switch(i)138 {139 case 1:140 jl2b_1[i]=new JLabel(" 任务A");141 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 30));142 jl2b_1[i].setForeground(Color.red);143 break;144 case 2:145 jl2b_1[i]=new JLabel(" 任务B");146 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));147 jl2b_1[i].setForeground(Color.red);148 break;149 case 3:150 jl2b_1[i]=new JLabel(" 任务C");151 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));152 jl2b_1[i].setForeground(Color.red);153 break;154 case 4:155 jl2b_1[i]=new JLabel(" 任务D");156 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));157 jl2b_1[i].setForeground(Color.red);158 break;159 case 5:160 jl2b_1[i]=new JLabel(" 任务E");161 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));162 jl2b_1[i].setForeground(Color.red);163 break;164 case 6:165 jl2b_1[i]=new JLabel(" 任务F");166 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));167 jl2b_1[i].setForeground(Color.red);168 break;169 case 7:170 jl2b_1[i]=new JLabel(" 任务G");171 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));172 jl2b_1[i].setForeground(Color.red);173 break;174 case 8:175 jl2b_1[i]=new JLabel(" 任务H");176 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));177 jl2b_1[i].setForeground(Color.red);178 break;179 case 9:180 jl2b_1[i]=new JLabel(" 任务I");181 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));182 jl2b_1[i].setForeground(Color.red);183 break;184 case 10:185 jl2b_1[i]=new JLabel(" 任务J");186 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));187 jl2b_1[i].setForeground(Color.red);188 break;189 case 11:190 jl2b_1[i]=new JLabel(" 任务K");191 jl2b_1[i].setFont(new java.awt.Font("宋体", 1, 15));192 jl2b_1[i].setForeground(Color.red);193 break;194 }195 jp2a_1[i].add(jl2b_1[i]);196 jp2a_1[i].add(jl2c1_1[i]);197 jp2a_1[i].add(jtf21_1[i]);198 jp2a_1[i].add(jl2c2_1[i]);199 jp2a_1[i].add(jtf22_1[i]);200 jp_1.add(jp2a_1[i]);201 } 202 jp4x2=new JPanel();203 jb_1=new JButton();204 jb_2=new JButton();205 lan2=new JLabel(new ImageIcon("F:/text/lan2.png"));206 jp0.setLayout(new BorderLayout());207 //第一栏208 jp1.setLayout(new GridLayout(2,1));209 jp1.add(jlb1);210 jp1.add(jp2);211 jp2.setLayout(new BorderLayout());212 jp2.add(jp22,BorderLayout.CENTER);213 /*将等待图加到jp22*/jp22.setLayout(null);214 jp22.setBackground(Color.WHITE);215 for (int i = 0; i<11; i++) 216 { 217 no[i] = new JLabel(new ImageIcon("F:/text/no.png"));218 jp22.add(no[i]);219 no[i].setBounds(i*48+14*i, 0, 48, 134);220 lan[i] =new JLabel(new ImageIcon("F:/text/lan.png"));221 jp22.add(lan[i]);222 lan[i].setBounds((i-1)*14+i*48,0 , 14, 134);223 /* 控制图像的位置大小 */224 }225 jp22.add(lan2);226 lan2.setBounds(860,0,14, 134);227 jp222.add(jlb2);228 jp2.add(jp222,BorderLayout.EAST);229 //第三栏230 // jp_1.setBackground(Color.RED);//给面板设置背景颜色231 //第四栏232 jp4x2=new JPanel();233 jp4x2.setLayout(new GridLayout(2,1));234 jp4=new JPanel();235 jp4.setLayout(new GridLayout(1,2));236 jb_1=new JButton("确定录完");237 jb_2=new JButton("开始任务");238 jp4x2.add(x2);239 jp4x2.add(jp4);240 /*注册开始键监听*/ 241 jb_2.addActionListener(this);242 jb_2.setActionCommand("aa");243 jb_1.setBackground(Color.pink);244 jb_2.setBackground(Color.green);245 jp4.add(jb_1);246 jp4.add(jb_2);247 //按1,2,3栏的顺序添加面板进jp0248 jp0.add(jp1,BorderLayout.NORTH);249 jp0.add(jp_1,BorderLayout.CENTER);250 jp0.add(jp4x2,BorderLayout.SOUTH);251 //把jp0和textAreaz装进拉伸版252 jsp.add(jp0);253 jsp.add(gun);254 this.add(jsp);255 //显示256 this.setSize(1270,600);257 this.setLocation(60,50);258 this.setResizable(false);259 this.setTitle("微型操作系统3合一");260 this.setVisible(true);261 }262 public void gettime()//获取时间的方法263 {264 Calendar c = Calendar.getInstance(); 265 int gominute = c.get(Calendar.MINUTE); 266 int gosecond = c.get(Calendar.SECOND);267 int time=gominute*60+gosecond;268 all1=time;269 }270 public void gettime2()//获取时间的方法271 {272 Calendar c = Calendar.getInstance(); 273 int gominute = c.get(Calendar.MINUTE); 274 int gosecond = c.get(Calendar.SECOND);275 int time=gominute*60+gosecond;276 all2=time;277 }278 public void rungo()279 {280 choose=1;281 }282 @Override283 public void actionPerformed(ActionEvent e) //事件处理时欲要改变外界的值应该传进方法284 {285 if (e.getActionCommand().equals("aa")) 286 {287 gettime();288 rungo();289 System.out.println(all1);290 }291 292 }293 public void repaint()//这个方法用来专门刷新面板除了用户输入界面例外294 {295 //以下是用来刷新面版 我只到画板的刷新方法用一句this.repaint();但这不是画板。。。没办法296 jp0=new JPanel();297 jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);298 /*可以伸缩*/jsp.setOneTouchExpandable(true);299 jta=new JTextArea("!!!以后操作细节将在这里显示!!!\n");300 gun=new JScrollPane(jta);301 jlb1=new JLabel(new ImageIcon("F:/text/pai.png"));302 jp1=new JPanel();303 jp2=new JPanel();304 jp22=new JPanel();305 jp222=new JPanel();306 int Atime=all2-all1;307 if(choose==0)308 {309 Atime=0;310 }311 jlb2=new JLabel(Atime+"秒");312 jlb2.setBackground(Color.RED);313 jlb2.setFont(new java.awt.Font("Dialog", 1, 77));314 jlb2.setForeground(Color.red);315 x2=new JPanel();316 x2.setLayout(new BorderLayout());317 x2_1=new JPanel();318 x2_2=new JPanel();319 x2_3=new JPanel();320 jcb_1=new JCheckBox("先来先服务");321 jcb_2=new JCheckBox("短作业优先");322 jcb_3=new JCheckBox("响应比者高优先");323 //一定要把 jrb1 jrb2 放入到一个ButtonGroup324 ButtonGroup bg=new ButtonGroup();325 bg.add(jcb_1);326 bg.add(jcb_2);327 bg.add(jcb_3);328 x2_2.add(jcb_1);329 x2_2.add(jcb_2);330 x2_2.add(jcb_3);331 x2.add(x2_1,BorderLayout.WEST);332 x2.add(x2_2,BorderLayout.CENTER);333 x2.add(x2_3,BorderLayout.EAST); 334 jp4x2=new JPanel();335 jb_1=new JButton();336 jb_2=new JButton();337 lan2=new JLabel(new ImageIcon("F:/text/lan2.png"));338 jp0.setLayout(new BorderLayout());339 //第一栏340 jp1.setLayout(new GridLayout(2,1));341 jp1.add(jlb1);342 jp1.add(jp2);343 jp2.setLayout(new BorderLayout());344 jp2.add(jp22,BorderLayout.CENTER);345 /*将等待图加到jp22*/jp22.setLayout(null);346 jp22.setBackground(Color.WHITE);347 for (int i = 0; i<11; i++) 348 { 349 no[i] = new JLabel(new ImageIcon("F:/text/no.png"));350 jp22.add(no[i]);351 no[i].setBounds(i*48+14*i, 0, 48, 134);352 lan[i] =new JLabel(new ImageIcon("F:/text/lan.png"));353 jp22.add(lan[i]);354 lan[i].setBounds((i-1)*14+i*48,0 , 14, 134);355 /* 控制图像的位置大小 */356 }357 jp22.add(lan2);358 lan2.setBounds(860,0,14, 134);359 jp222.add(jlb2);360 jp2.add(jp222,BorderLayout.EAST);361 //第三栏362 // jp_1.setBackground(Color.RED);//给面板设置背景颜色363 //第四栏364 jp4x2=new JPanel();365 jp4x2.setLayout(new GridLayout(2,1));366 jp4=new JPanel();367 jp4.setLayout(new GridLayout(1,2));368 jb_1=new JButton("确定录完");369 jb_2=new JButton("开始任务");370 jp4x2.add(x2);371 jp4x2.add(jp4);372 /*注册开始键监听*/ 373 jb_2.addActionListener(this);374 jb_2.setActionCommand("aa");375 jb_1.setBackground(Color.pink);376 jb_2.setBackground(Color.green);377 jp4.add(jb_1);378 jp4.add(jb_2);379 //按1,2,3栏的顺序添加面板进jp0380 jp0.add(jp1,BorderLayout.NORTH);381 jp0.add(jp_1,BorderLayout.CENTER);382 jp0.add(jp4x2,BorderLayout.SOUTH);383 //把jp0和textAreaz装进拉伸版384 jsp.add(jp0);385 jsp.add(gun);386 this.add(jsp);387 //显示388 this.setSize(1270,600);389 this.setLocation(60,50);390 this.setResizable(false);391 this.setTitle("微型操作系统3合一");392 this.setVisible(true);393 }394 @Override395 public void run() {396 while(true)397 {398 try {399 Thread.sleep(1000);400 } catch (Exception e) {}401 gettime2();402 repaint();403 }404 }405 } F:/text/pai.png
F:/text/lan2.png
F:/text/no.png
F:/text/lan.png