Java实现鼠标模拟与键盘映射
本文实例为大家分享了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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
mybatisplus报错:Invalid bound statement(not fou
文章主要介绍了在使用MyBatis-Plus时遇到的`Invalid bound statement (not found)`错误的几种常见原因和解决方法,包括namespace路径不一致、函数名或标签id不一致、构建未成功、扫包配置错误以及配置文件书写错误2025-02-02
使用Idea简单快速搭建springcloud项目的图文教程
这篇文章主要介绍了使用Idea简单快速搭建springcloud项目,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01
Java 对 Properties 文件的操作详解及简单实例
这篇文章主要介绍了Java 对 Properties 文件的操作详解及简单实例的相关资料,需要的朋友可以参考下2017-02-02
Spring Boot Admin Server管理客户端过程详解
这篇文章主要介绍了Spring Boot Admin Server管理客户端过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-03-03


最新评论