復雜的事情要簡單做;   簡單的事情要認真做;   認真的事情要重復做;   重復的事情要創造性地做。

          信心 恒心 決心 創意 樂意

          も軍魂ミ 心系java

          Java的魅力:跨平臺、動態的Web、Internet計算 Java在Web、移動設備以及云計算方面前景廣闊 我的java編程不是夢!!! 俗話說的好:“授人以魚不如授人以漁”.
          posts - 10, comments - 12, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
                    1)、先封裝一個病人(Patient)的類。里面設置兩個屬性:一個是排隊的人數(num),一個是前面需要等待的人數(frontnum);
                                      

          package com.dr.patient;

          public class Patient {
                private int num;    
             private int frontNum;
            
           public int getNum() {
            return num;
           }
           public void setNum(int num) {
            this.num = num;
           }
           public int getFrontNum() {
            return frontNum;
           }
           public void setFrontNum(int frontNum) {
            this.frontNum = frontNum;
           }

                                                                                                                              }

                    2)、然后建立一個病人服務的類(PatientServer),構建一個病人等待排隊數字的循環邏輯;
          package com.dr.patient;

          import java.util.LinkedList;
          import java.util.Queue;

          public class PatientServer {
               Queue<Patient> patientList = new LinkedList<Patient>();                //新建一個容器,病人的隊列
             
           public Queue<Patient> init(){                                                            //構建一個方法,把掛號的病人加入
            
            for(int i=1;i<=24;i++){                                                               //設定隊列中已有24個人,掛號加入的從第25個開始
             Patient pat = new Patient();
                pat.setNum(i);
                pat.setFrontNum(i-1);
                patientList.offer(pat);                                                     //將指定的病人元素插入此隊列
            }
            return patientList;
          }
          }


                3)、病人掛號點擊頁面,主要用Display、Shell方法新建窗口!

          final Display display = Display.getDefault();
            final Shell shell = new Shell();
            shell.setBounds(300, 100, 800, 700);                                              
            shell.setText("病人掛號排隊端");




          // ------------------新插入的界面核心代碼------------------------
            PatientServer qs = new PatientServer();//實例化類
            final Queue<Patient> patientList = qs.init();//初始化隊列服務器
            
            final Text txt = new Text(shell,SWT.MULTI);                                          //建立窗口里文本的的大小
               txt.setBounds(150, 50, 500, 450);

               final Button button = new Button(shell, SWT.Activate);                         //設置一個button按鈕
                                                                                                            

           button.addSelectionListener(new SelectionAdapter() {                       //鼠標單擊按鈕事件
                    public void widgetSelected(SelectionEvent e) {
                          Patient p = new Patient();
                          p.setNum(patientList.size()+1);
                           p.setFrontNum(patientList.size());
                           patientList.offer(p);
                        if(patientList.size() <= 48){
                                    txt.setText( "您好!您現在排在"+p.getNum()+"位置上,\n\n您前面有"+p.getFrontNum()+"個病人需要看病\n\n請您耐心等候吧!\n\n\n\n若您為急診,則直接去急診室看病就可以了!");
              }else{
               txt.setText("您現在排在"+p.getNum()+"位置上,\n\n\n您前面已經超過36個病人等待了,請您盡快選擇換地吧!給你帶來的不便,望您見諒!\n");
              }
             }
            });
            
            button.setBounds(300, 530, 200, 75);                                                       / 設置按鈕位置
            button.setFont(new Font(display,"華文楷體",12,SWT.BOLD));
            button.setText("生病掛號");                                                                   // 設置按鈕上的文字
              

            shell.layout();                                                  
            shell.open();                                                                            //打開窗口
            while (!shell.isDisposed()) {                                                    //支撐窗口在不點擊任何按鈕時一直保留在桌面上
             if (!display.readAndDispatch())
              display.sleep();
            }
           }
          }




          4)、再封裝一個急救病人的類(PatientHuarry)!方法和封裝病人的類基本一樣。

          package com.dr.patient;

          public class PatientHuarry {
            private int num;                                     //兩個急求病人的屬性
             private int frontNum;
           public int getNum() {
            return num;
           }
           public void setNum(int num) {
            this.num = num;
           }
           public int getFrontNum() {
            return frontNum;
           }
           public void setFrontNum(int frontNum) {
            this.frontNum = frontNum;
           }
          }



                  5)、再從新構建一個新的隊列(patienthuarryList),讓其承載急救病人,而進入隊列的方法思維也是和Patient的類一樣

          public class PatientServerH {
           Queue<PatientHuarry> patienthuarryList = new LinkedList<PatientHuarry>();

           public Queue<PatientHuarry> init(){
            
            for(int i=1;i<=16;i++){                                    //這對列能放的人數
             PatientHuarry ph = new PatientHuarry();
                ph.setNum(i);
                ph.setFrontNum(i-1);
                patienthuarryList.offer(ph);
            }
            return patienthuarryList;
          }
          }


              6)、最后構建醫生專家按病人掛號排序就診的頁面!而為急診的病人,則不需掛號,直接去急診室就診。
                    醫生專家的UI界面:




          public class DoctorUI {
                public static void main(String[] args) {
            
                  final Display display = Display.getDefault();
                  final Shell shell = new Shell();
                  shell.setBounds(200, 150, 1000, 600);
                  shell.setText("醫生專家服務端");
            
            // ------------------新插入的界面核心代碼------------------------
            PatientServer qs = new PatientServer();                          //實例化類
               final Queue<Patient> patientList = qs.init();                  //初始化隊列服務器
               
               PatientServerH qsh = new PatientServerH();
               final Queue<PatientHuarry> patienthuarryList = qsh.init();
              
               final Text txt1 = new Text(shell,SWT.MULTI);                        //創建四個文本窗口
               txt1.setBounds(80, 50, 170, 300);
            
               final Text txt2 = new Text(shell,SWT.MULTI);
               txt2.setBounds(300, 50, 170, 300);
            
               final Text txt3 = new Text(shell,SWT.MULTI);
               txt3.setBounds(520, 50, 170, 300);
            
               final Text txt4 = new Text(shell,SWT.MULTI);
               txt4.setBounds(740, 50, 170, 300);

               // 事件代碼里要訪問button
               final Button button1 = new Button(shell, SWT.Activate);                         // button1的事件方法
               button1.addSelectionListener(new SelectionAdapter() {                       // 加一個選擇監聽器
               public void widgetSelected(SelectionEvent e) {
              
                Patient p= patientList.poll();                      //彈出一個隊列中的病人
              
                    if(p!=null){
                          txt1.setText(p.getNum()+"號病人請到內科專家處看病\n\n我們部門在一層左拐第一間,\n很樂意為您看病!!\n\n\n\n\n\n\n\n您好!請按時吃藥!");
                    }
                  else{
                         txt1.setText("現在沒有等候的病人了,\n可以喝杯水了哈");
                  }       
               
            
             }
               });
                button1.setBounds(120, 400, 90, 40);                 // 設置按鈕位置
                button1.setText("內科專家");                            // 設置按鈕上的文字
            

             final Button button2 = new Button(shell, SWT.Activate);                        // button2的事件方法

             button2.addSelectionListener(new SelectionAdapter() {
                 public void widgetSelected(SelectionEvent e) {
                  Patient p= patientList.poll();
                  if(p!=null){
                     txt2.setText(p.getNum()+"號病人請到外科專家處看病\n\n我們部門在二層右拐第三間,\n很樂意為您看病!!\n\n\n\n\n\n\n\n您好!請慢走!");
                   }
                   else{
                    txt2.setText("現在沒有等候的病人了,\n可以喝杯水了哈");
                   }       
              }
                });
                button2.setBounds(340, 400, 90, 40);
                button2.setText("外科專家");
              
              final Button button3 = new Button(shell, SWT.Activate);                         // button3的事件方法

              button3.addSelectionListener(new SelectionAdapter() {
              public void widgetSelected(SelectionEvent e) {
                
               Patient p= patientList.poll();
               if(p!=null){
                    txt3.setText(p.getNum()+"號病人請到放射科科專家處看病\n\n我們部門在一層右拐最里一間,\n很樂意為您看病!!\n\n\n\n\n\n\n\n您好!請注意調理!");
                   }
                   else{
                    txt3.setText("現在沒有等候的病人了,\n可以喝杯水了哈!");
                   }      
                
                
              
               }
                 });
                 button3.setBounds(560, 400, 90, 40); 
                 button3.setText("放射科專家");

               
               final Button button4 = new Button(shell, SWT.Activate);                       // button4的事件方法

               button4.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(SelectionEvent e) {
                 
                PatientHuarry ph= patienthuarryList.poll();
                if(ph!=null){
                     txt4.setText(ph.getNum()+"號急診病人請到急診專家處看病\n我們部門在一層左拐第三間,\n很樂意為您看病!!\n\n\n\n由于的您病情比較著急,\n我們會全力為您治療,\n請您放心!!\n\n\n\n\n\n\n\n您好!請保重身體!");
                    }
                    else{
                     txt4.setText("現在沒有急診的病人了,\n我們可以休息會兒了!\n嘻嘻!");
                    }      
                 
               
                }
                  });
                  button4.setBounds(780, 400, 90,40);
                  button4.setText("急診專家");
              
              
            shell.layout();
            shell.open();
            while (!shell.isDisposed()) {                                   //同樣為支撐窗口在不點擊任何按鈕時一直保留在桌面上
             if (!display.readAndDispatch())  
              display.sleep();
            }
              }
          }



          總結:這小程序主要是根據醫院服務需求,做了簡單的病人看病需要掛號,而醫生作診同樣需要呼叫病人,這就無形中減少了病人和醫生之間話費時間的聯系!
                       在編輯這個程序的過程中,主要還是用到的一些窗口的控件及其方法。




               最后也希望在看后我程序的人,給與我點評!我想從大家的想法中學到更多的東西,謝謝!  













          主站蜘蛛池模板: 天柱县| 蒙山县| 昭苏县| 济南市| 河北区| 宜宾县| 公主岭市| 永仁县| 南昌县| 岳西县| 上虞市| 玉树县| 太白县| 镶黄旗| 哈尔滨市| 和林格尔县| 武夷山市| 绥滨县| 垣曲县| 岐山县| 湘乡市| 泉州市| 娱乐| 西平县| 台山市| 南陵县| 略阳县| 婺源县| 绥中县| 夏邑县| 彩票| 东阳市| 三门峡市| 应用必备| 潜江市| 天门市| 内江市| 旬阳县| 阿图什市| 手机| 贵南县|