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小程序
          主站蜘蛛池模板: 高唐县| 那曲县| 阿合奇县| 临西县| 江达县| 东乌珠穆沁旗| 庆元县| 周口市| 广昌县| 手游| 汽车| 上林县| 大余县| 陵川县| 安岳县| 自治县| 岳西县| 金塔县| 阳原县| 北碚区| 紫阳县| 渑池县| 县级市| 牟定县| 建平县| 滁州市| 宜丰县| 余庆县| 宕昌县| 桐梓县| 遵义县| 临高县| 岐山县| 建水县| 安宁市| 靖边县| 新宁县| 康平县| 嘉峪关市| 若羌县| 泸西县|