zoukankan      html  css  js  c++  java
  • 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("!!!以后操作细节将在这里显示!!!
    ");
     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("!!!以后操作细节将在这里显示!!!
    ");
    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
     
  • 相关阅读:
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    迷宫问题 POJ 3984
    UVA 820 Internet Bandwidth (因特网带宽)(最大流)
    UVA 1001 Say Cheese(奶酪里的老鼠)(flod)
    UVA 11105 Semiprime Hnumbers(H半素数)
    UVA 557 Burger(汉堡)(dp+概率)
  • 原文地址:https://www.cnblogs.com/vip-fan1234xiang/p/4492364.html
Copyright © 2011-2022 走看看