这篇文章将为大家详细讲解有关Java怎么实现鼠标模拟与键盘映射,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体内容如下
关键字: java 鼠标模拟 键盘映射
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) 在配有滚轮的鼠标上旋转滚轮。
下面就让我们来实战鼠标控制,实现一个简单的鼠标控制程序MouseController。程序功能很简单:随机移动鼠标并点击左键
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; } }
关于“Java怎么实现鼠标模拟与键盘映射”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。