march alex's blog
          hello,I am march alex
          posts - 52,comments - 7,trackbacks - 0
          Java SDK 1.3以后實現了Robot類。此類用于為測試自動化、自運行演示程序和其他需要控制鼠標和鍵盤的應用程序生成本機系統輸入事件。Robot 的主要目的是便于 Java 平臺實現自動測試。
          使用該類生成輸入事件與將事件發送到 AWT 事件隊列或 AWT 組件的區別在于:事件是在平臺的本機輸入隊列中生成的。例如,Robot.mouseMove 將實際移動鼠標光標,而不是只生成鼠標移動事件。
          Robot中主要的鼠標和鍵盤控制方法有:
          void keyPress(int keycode) 按下給定的鍵。
          void keyRelease(int keycode) 釋放給定的鍵。
          void mouseMove(int x, int y) 將鼠標指針移動到給定屏幕坐標。
          void mousePress(int buttons) 按下一個或多個鼠標按鈕。
          void mouseRelease(int buttons) 釋放一個或多個鼠標按鈕。
          void mouseWheel(int wheelAmt) 在配有滾輪的鼠標上旋轉滾輪。
          下面是一個簡單的示例
          import java.awt.AWTException;
          import java.awt.Dimension;
          import java.awt.Robot;
          import java.awt.Toolkit;
          import java.awt.event.InputEvent;
          import java.awt.event.KeyEvent;


          public class KeyController implements Runnable {
              private Dimension dim;
              private Robot robot;
              private volatile boolean stop = false;
              
              public KeyController() {
                  dim = Toolkit.getDefaultToolkit().getScreenSize();
                  System.out.println("computer imformation:\n" + "width:"+dim.width+"\theight:"+dim.height);
                  try {
                      robot = new Robot();
                  } catch (AWTException ex) {
                      ex.printStackTrace();
                  }
              }
              
              public void run() {
                  while(!stop) {
                      robot.mousePress(InputEvent.BUTTON1_MASK);
                      try {
                          Thread.sleep(3000);
                      } catch (InterruptedException e) {
                          e.printStackTrace();
                      }
                  }
              }
              
              public synchronized void stop() {
                  stop = true;
              }
              
              public static void main(String[] args) {
                  MouseController kc = new MouseController();
                  Thread kcThread = new Thread(kc);
                  System.out.println("Key Controller start");
                  kcThread.start();
                  try {
                      Thread.sleep(60000);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
                  kc.stop();
                  System.out.println("Mouse Controller stoped");
              }
          }
          posted on 2015-02-21 23:09 marchalex 閱讀(402) 評論(0)  編輯  收藏 所屬分類: java小程序
          主站蜘蛛池模板: 祁连县| 浙江省| 常宁市| 固原市| 霍山县| 鄄城县| 永登县| 财经| 吉林省| 微博| 元朗区| 峨山| 南部县| 马山县| 稷山县| 唐山市| 若羌县| 湖南省| 台北市| 应城市| 高州市| 新巴尔虎左旗| 大厂| 仙游县| 微山县| 越西县| 泽库县| 萨迦县| 民和| 营口市| 涡阳县| 安西县| 玛多县| 霍城县| 隆子县| 涪陵区| 莱阳市| 徐州市| 板桥市| 开封县| 永嘉县|