march alex's blog
          hello,I am march alex
          posts - 52,comments - 7,trackbacks - 0
          Java SDK 1.3以后實現(xiàn)了Robot類。此類用于為測試自動化、自運行演示程序和其他需要控制鼠標和鍵盤的應(yīng)用程序生成本機系統(tǒng)輸入事件。Robot 的主要目的是便于 Java 平臺實現(xiàn)自動測試。
          使用該類生成輸入事件與將事件發(fā)送到 AWT 事件隊列或 AWT 組件的區(qū)別在于:事件是在平臺的本機輸入隊列中生成的。例如,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) 在配有滾輪的鼠標上旋轉(zhuǎn)滾輪。
          下面是一個簡單的示例
          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小程序
          主站蜘蛛池模板: 阜新| 南澳县| 新巴尔虎右旗| 澜沧| 县级市| 句容市| 井冈山市| 光山县| 同心县| 满城县| 西充县| 凌海市| 襄樊市| 蓬溪县| 遂宁市| 壤塘县| 榕江县| 上林县| 那坡县| 安溪县| 永嘉县| 盖州市| 鄂托克前旗| 上饶县| 绥滨县| 灯塔市| 都安| 井研县| 建德市| 台北市| 南澳县| 黄浦区| 东兰县| 育儿| 清丰县| 积石山| 交口县| 海丰县| 永胜县| 甘德县| 珲春市|