posts - 14,  comments - 7,  trackbacks - 0
          1.當我們去銀行辦理什么業務的時候總會先在一個類似電腦的小系統上去一個號,然后等著,當被叫到時就去相應的窗口辦理業務,這種排隊的小系統主要用到了接口Queue,因為它符合隊列的要求先進先出。
          2.還有就是有種特殊情況就是,銀行的金卡用戶,他們的權限較高,總可以在普通用戶的前面辦理業務
          相應代碼如下:
          package com.dr.queue;

          public class Counter {

              
          private int counterId;  //???й???????
              private String counterName; //???й????????????
              
              
          private Waiter w;
              
              
          public Counter(Waiter w){
                 
          this.w = w;
              }

              
              
          public Waiter getW() {
                  
          return w;
              }


              
          public void setW(Waiter w) {
                  
          this.w = w;
              }

              
              
          public int getCounterId() {
                  
          return counterId;
              }

              
          public void setCounterId(int counterId) {
                  
          this.counterId = counterId;
              }

              
          public String getCounterName() {
                  
          return counterName;
              }

              
          public void setCounterName(String counterName) {
                  
          this.counterName = counterName;
              }

              
              
          public void handleBusiness(){
                  System.out.println(
          "I handling the " + this.w.getNum() +" waiter");
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                      e.printStackTrace();
                  }

                  System.out.println(
          "I have handled the waiter,next ,next ,next");
                  
              }


          }

          package com.dr.queue;


          public class Waiter {

              
          private int num;
              
              
          private int frontNum;
              
          private int flag;//0=普通 1= 金卡

              
          public int getFlag() {
                  
          return flag;
              }


              
          public void setFlag(int flag) {
                  
          this.flag = flag;
              }


              
          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;
              }

              
              
              
          }

          package com.dr.queue;

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

          public class QueueServer {

              LinkedList
          <Waiter> waiterList = new LinkedList<Waiter>();

              
              
              
          public LinkedList<Waiter> init(){
                  
                  
          for(int i=1;i<=30;i++){
                      Waiter w 
          = new Waiter();
                      w.setNum(i);
                      w.setFrontNum(i
          -1);
                      waiterList.offer(w);
                  }

                  
          return waiterList;
          }

          }
          package ui;

          import java.util.Queue;

          import org.eclipse.jface.dialogs.MessageDialog;
          import org.eclipse.swt.SWT;
          import org.eclipse.swt.events.SelectionAdapter;
          import org.eclipse.swt.events.SelectionEvent;
          import org.eclipse.swt.widgets.Button;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Shell;
          import org.eclipse.swt.widgets.Text;

          import com.dr.queue.QueueServer;
          import com.dr.queue.Waiter;

          public class BankWorkerUI {
              
          public static void main(String[] args) {
                  
                  
          final Display display = Display.getDefault();
                  
          final Shell shell = new Shell();
                  shell.setSize(
          327253);
                  
                  shell.setText(
          "銀行排隊之工作人員客戶端");
                  
          // ------------------新插入的界面核心代碼------------------------
                  QueueServer qs = new QueueServer();//實例化類
                  final Queue<Waiter> waiterList = qs.init();//初始化隊列服務器
                  
                  
          final Text txt = new Text(shell,SWT.MULTI);
                  txt.setBounds(
          653018070);
                  
          // 事件代碼里要訪問button
                  final Button button = new Button(shell, SWT.Activate);
                  button.addSelectionListener(
          new SelectionAdapter() // 加一個??擇監聽器
                              public void widgetSelected(SelectionEvent e) {
                                  
          //System.out.println("############### " + waiterList.size());
                                  Waiter waiter= waiterList.poll();
                                  
          if(waiter!= null){
                                    txt.setText(waiter.getNum()
          +"號顧客請到1號窗口辦理業務");
                                  }
          else{
                                      txt.setText(
          "現在沒有人辦理業務了,您可以休息會了\n 喝杯咖啡吧,哈哈!");
                                  }

                              }

                          }
          );
                  button.setBounds(
          9014110025); // 設置按鈕位置
                  button.setText("下一個");// 設置按鈕上的文字

                  
          // ------------------END---------------------------------------------
                  shell.layout();
                  shell.open();
                  
          while (!shell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }

              }

          }

          package ui;

          import java.util.LinkedList;

          import org.eclipse.swt.SWT;
          import org.eclipse.swt.events.SelectionAdapter;
          import org.eclipse.swt.events.SelectionEvent;
          import org.eclipse.swt.graphics.Font;
          import org.eclipse.swt.widgets.Button;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Shell;
          import org.eclipse.swt.widgets.Text;

          import com.dr.queue.QueueServer;
          import com.dr.queue.Waiter;

          public class WaiterQueueUI {
              
          public static void main(String[] args) {
                  
          final Display display = Display.getDefault();
                  
          final Shell shell = new Shell();
                  shell.setBounds(
          0,01000800);
                  shell.setText(
          "銀行排隊之顧客使用的客戶端");
                  
          // ------------------新插入的界面核心代碼------------------------
                  QueueServer qs = new QueueServer();//實例化類
                  final LinkedList<Waiter> waiterList = qs.init();//初始化隊列服務器
                  
                  
          final Text txt = new Text(shell,SWT.MULTI);
                  txt.setBounds(
          26050500450);
                  
          // 事件代碼里要訪問button,所以加????final
                  final Button button = new Button(shell, SWT.Activate);
                  button.addSelectionListener(
          new SelectionAdapter() // 加一個??擇監聽器
                              public void widgetSelected(SelectionEvent e) {
                                  
          //System.out.println("############### " + waiterList.size());
                                  Waiter waiter = new Waiter();                        
                                  waiter.setNum(waiterList.size()
          +1);
                                  waiter.setFrontNum(waiterList.size());
                                  waiterList.offer(waiter);
                                  
          if(waiterList.size() <= 50){
                                      txt.setText( 
          "您現在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"個人\n請您耐心等候吧!哈哈");
                                  }
          else{
                                      txt.setText(
          "您前面已經排50個人,請考慮!\n"+"您現在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"個人\n請您耐心等候吧!哈哈");
                                  }

                              }

                  }
          );
                  button.setBounds(
          10053020075); // 設置按鈕位置
                  button.setFont(new Font(display,"宋體",12,SWT.BOLD));
                  button.setText(
          "個人業務");// 設置按鈕上的文字
                  
                   
          //final Text goldTxt = new Text(shell,SWT.MULTI);
                    
          //  goldTxt.setBounds(600, 50, 500, 450);
                      
          // 事件代碼里要訪問button,所以加????final
                      final Button goldButton = new Button(shell, SWT.Activate);
                      goldButton.addSelectionListener(
          new SelectionAdapter() // 加一個??擇監聽器
                                  public void widgetSelected(SelectionEvent e) {
                                      
          //System.out.println("############### " + waiterList.size());
                                      Waiter w = new Waiter();
                                      w.setFlag(
          1);
                                      waiterList.addFirst(w);
                                      
                                      txt.setText(
          "尊敬的金卡用戶,您現在可以到我行的任意窗口隨時辦理業務");
                                      
                                  }

                      }
          );
                      goldButton.setBounds(
          70053020075); // 設置按鈕位置
                      goldButton.setFont(new Font(display,"宋體",12,SWT.BOLD));
                      goldButton.setText(
          "金卡通道");// 設置按鈕上的文字


                  
          // ------------------END---------------------------------------------
                  shell.layout();
                  shell.open();
                  
          while (!shell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }

              }

          }


          運行界面為:




          posted on 2010-11-01 13:22 迷人笑笑 閱讀(3771) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          留言簿(13)

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武宣县| 大新县| 平阴县| 潼关县| 吉隆县| 襄樊市| 溧阳市| 玉林市| 昭苏县| 蕉岭县| 裕民县| 丰镇市| 阜南县| 水城县| 巫山县| 团风县| 衡东县| 海丰县| 溧阳市| 石林| 壶关县| 高邑县| 日土县| 象州县| 张北县| 石屏县| 贵溪市| 台中市| 毕节市| 灌云县| 陇西县| 东山县| 潞西市| 朝阳区| 炎陵县| 景宁| 和田市| 大同县| 齐齐哈尔市| 多伦县| 含山县|