JAVA 操作系统已经来到第五个版本了 现陆续放出三个版本 这是第二个版本

  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 放入到一个ButtonGroup
105         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栏的顺序添加面板进jp0
248         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     @Override
283     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 放入到一个ButtonGroup
324         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栏的顺序添加面板进jp0
380         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     @Override
395     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
 

 

转载于:https://www.cnblogs.com/vip-fan1234xiang/p/4492364.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值