俊星的BLOG

          SWT試用之控制鼠標鍵盤

          通過SWT可以控制鼠標鍵盤事件,具體如下:
          import org.eclipse.swt.SWT;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Event;
          import org.eclipse.swt.widgets.Shell;
          import org.eclipse.swt.widgets.Text;

          /**
           * 預期的運行效果為:顯示開始菜單
           * 
          @author kinkding
           * @history 2009-6-2
           
          */

          public class MyEventRes {

              
          public static void main(String[] args) {
                  
          final Display display = new Display();
                  
          final Shell shell = new Shell(display);
                  
          final Text text = new Text(shell, SWT.BORDER);
                  text.setSize(text.computeSize(
          150, SWT.DEFAULT));
                  text.setText(
          "神一樣的人啊!");
                  shell.pack();
                  shell.open();

                  
          new KeyThread(display).start(); // 鍵盤響應
                  
          // new MouseThread(display).start(); // 鼠標響應
                  while (!shell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }

                  display.dispose();
              }

          }


          class MouseThread extends Thread {
              Display display;
              
          int h;

              
          public MouseThread(Display display) {
                  
          this.display = display;
                  h 
          = display.getPrimaryMonitor().getBounds().height;
              }


              
          public void run() {
                  Event event 
          = new Event();
                  
          // 移動鼠標
                  event.type = SWT.MouseMove;
                  event.x 
          = 5;
                  event.y 
          = h - 5;
                  display.post(event);
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                  }

                  
          // 按下右鍵
                  event.type = SWT.MouseDown;
                  event.button 
          = 1;
                  display.post(event);
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                  }

                  
          // 恢復
                  event.type = SWT.MouseUp;
                  display.post(event);
              }

          }


          class KeyThread extends Thread {
              Display display;
              
          int h;

              
          public KeyThread(Display display) {
                  
          this.display = display;
                  h 
          = display.getPrimaryMonitor().getBounds().height;
              }


              
          public void run() {
                  Event event 
          = new Event();
                  
          // 按下CTRL
                  event.type = SWT.KeyDown;
                  event.keyCode 
          = SWT.CTRL;
                  display.post(event);
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                  }

                  
          // 按下ESC
                  event.type = SWT.KeyDown;
                  event.keyCode 
          = SWT.ESC;
                  display.post(event);
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                  }

                  
          // 恢復
                  event.type = SWT.KeyUp;
                  event.keyCode 
          = SWT.CTRL;
                  display.post(event);
                  
          try {
                      Thread.sleep(
          100);
                  }
           catch (InterruptedException e) {
                  }

                  event.type 
          = SWT.KeyUp;
                  event.keyCode 
          = SWT.ESC;
                  display.post(event);
              }

          }

          posted on 2009-06-02 00:15 俊星 閱讀(823) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 延边| 安顺市| 酉阳| 江西省| 会昌县| 吐鲁番市| 凤翔县| 齐齐哈尔市| 铁岭县| 新田县| 万源市| 孝感市| 北流市| 手机| 东至县| 汝城县| 尤溪县| 南康市| 承德市| 恭城| 荣昌县| 金溪县| 嘉兴市| 乌苏市| 永顺县| 新民市| 南木林县| 孟津县| 平遥县| 湖口县| 赤水市| 郸城县| 拉萨市| 营口市| 娄底市| 八宿县| 江阴市| 酒泉市| 墨脱县| 三河市| 岢岚县|