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 閱讀(403) 評論(0)  編輯  收藏 所屬分類: java小程序
          主站蜘蛛池模板: 双峰县| 通榆县| 波密县| 新民市| 乌兰县| 阿拉善左旗| 上思县| 格尔木市| 开封县| 固阳县| 紫金县| 荔浦县| 普安县| 镇江市| 长武县| 二连浩特市| 化德县| 泰州市| 固镇县| 长汀县| 佛山市| 志丹县| 五莲县| 崇文区| 精河县| 桐城市| 巩留县| 南阳市| 如皋市| 杭州市| 景德镇市| 丹阳市| 德令哈市| 武宁县| 酉阳| 施甸县| 额济纳旗| 开平市| 甘孜县| 洞头县| 哈尔滨市|