俊星的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 俊星 閱讀(822) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 长丰县| 临沧市| 玉林市| 井研县| 宣武区| 黄陵县| 锡林郭勒盟| 海安县| 长治市| 潜山县| 昆明市| 洛浦县| 镇赉县| 新乡市| 邵东县| 桂平市| 义马市| 鲁山县| 星座| 永靖县| 霍山县| 阳泉市| 时尚| 道孚县| 宿松县| 黄浦区| 启东市| 方正县| 股票| 白玉县| 赤城县| 永州市| 辽阳市| 简阳市| 洪洞县| 高密市| 中方县| 拉孜县| 灯塔市| 霍山县| 上犹县|