溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java怎么實(shí)現(xiàn)鼠標(biāo)模擬與鍵盤映射

發(fā)布時(shí)間:2021-04-15 10:47:30 來源:億速云 閱讀:184 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)Java怎么實(shí)現(xiàn)鼠標(biāo)模擬與鍵盤映射,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

具體內(nèi)容如下

關(guān)鍵字: java 鼠標(biāo)模擬 鍵盤映射

Java SDK 1.3以后實(shí)現(xiàn)了Robot類。此類用于為測試自動(dòng)化、自運(yùn)行演示程序和其他需要控制鼠標(biāo)和鍵盤的應(yīng)用程序生成本機(jī)系統(tǒng)輸入事件。Robot 的主要目的是便于 Java 平臺(tái)實(shí)現(xiàn)自動(dòng)測試。

使用該類生成輸入事件與將事件發(fā)送到 AWT 事件隊(duì)列或 AWT 組件的區(qū)別在于:事件是在平臺(tái)的本機(jī)輸入隊(duì)列中生成的。例如,Robot.mouseMove 將實(shí)際移動(dòng)鼠標(biāo)光標(biāo),而不是只生成鼠標(biāo)移動(dòng)事件。

Robot中主要的鼠標(biāo)和鍵盤控制方法有:

? void keyPress(int keycode) 按下給定的鍵。
? void keyRelease(int keycode) 釋放給定的鍵。
? void mouseMove(int x, int y) 將鼠標(biāo)指針移動(dòng)到給定屏幕坐標(biāo)。
? void mousePress(int buttons) 按下一個(gè)或多個(gè)鼠標(biāo)按鈕。
? void mouseRelease(int buttons) 釋放一個(gè)或多個(gè)鼠標(biāo)按鈕。
? void mouseWheel(int wheelAmt) 在配有滾輪的鼠標(biāo)上旋轉(zhuǎn)滾輪。

下面就讓我們來實(shí)戰(zhàn)鼠標(biāo)控制,實(shí)現(xiàn)一個(gè)簡單的鼠標(biāo)控制程序MouseController。程序功能很簡單:隨機(jī)移動(dòng)鼠標(biāo)并點(diǎn)擊左鍵

package robot;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.util.Random;

public class MourseControl implements Runnable{
 private Dimension dim;
 private Random rand;
 private Robot robot; 

 private volatile boolean stop = false;
  public MourseControl()
  {
   //
   dim = Toolkit.getDefaultToolkit().getScreenSize();
   rand = new Random();
   try {
  robot = new Robot();
 } catch (AWTException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
  }
 /**
 * @param args
 */
 public static void main(String[] args) {
 // TODO Auto-generated method stub
    MourseControl m = new MourseControl();
    Thread t = new Thread(m);
    t.start();
    System.out.println("MourseControl start...");
    try {
  Thread.sleep(10000);
 } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
    m.stop();
    System.out.println("MourseControl stop...");
 }
 public void run() {
 // TODO Auto-generated method stub
 while(!stop)
 {
  int x = rand.nextInt(dim.width);
  int y = rand.nextInt(dim.height);

  try {
  Thread.sleep(2000);
  } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  robot.mouseMove(x, y);
  System.out.println("move to :x="+x+",y="+y);
  robot.mousePress(InputEvent.BUTTON1_MASK);
 }

 }
 public synchronized void stop()
 {
 stop = true;
 }

}

關(guān)于“Java怎么實(shí)現(xiàn)鼠標(biāo)模擬與鍵盤映射”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI