Java模拟鼠标键盘输入事件 --- Robot 类

逃离我推掉我的手 2021-09-22 09:38 1023阅读 0赞

本文链接: http://blog.csdn.net/xietansheng/article/details/78453672

Java Swing 图形界面开发(目录)

官方JavaDocsApi: java.awt.Robot

Robot,机器人。此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。

Robot 可以模拟鼠标和键盘的输入,相当于 Java 版的按键精灵

Robot 构造方法:

  1. // 在基本屏幕坐标系中构造一个 Robot 对象, 如果平台不支持 Robot, 将抛出异常
  2. Robot()
  3. // 为给定屏幕设备创建一个 Robot(用于同时使用多个显示设备的情况)
  4. Robot(GraphicsDevice screen)

模拟鼠标的方法:

  1. // 将鼠标指针移动到指定屏幕坐标
  2. void mouseMove(int x, int y)
  3. /** * 按下/释放一个或多个鼠标按钮, 参数说明: * buttons: 鼠标按钮掩码, 一个或多个以下标志的组合: * InputEvent.BUTTON1_MASK 鼠标左键 * InputEvent.BUTTON2_MASK 鼠标中键 * InputEvent.BUTTON3_MASK 鼠标右键 */
  4. void mousePress(int buttons)
  5. void mouseRelease(int buttons)
  6. // 在配有滚轮的鼠标上旋转滚轮
  7. void mouseWheel(int wheelAmt)

模拟键盘的方法:

  1. /** * 按下/释放键盘按键, 参数说明: * keycode: 键盘键值常量, 定义在 KeyEvent.VK_XXX 中 */
  2. void keyPress(int keycode)
  3. void keyRelease(int keycode)

屏幕相关方法:

  1. // 获取指定屏幕坐标处的像素颜色
  2. Color getPixelColor(int x, int y)
  3. // 截屏, 截取指定的矩形区域
  4. BufferedImage createScreenCapture(Rectangle screenRect)

控制类方法:

  1. // 睡眠指定的时间, 相当于 Thread.sleep(long ms)
  2. void delay(int ms)
  3. // 在处理完当前事件队列中的所有事件之前, 一直等待
  4. void waitForIdle()
  5. // 设置此 Robot 在生成一个事件后是否自动调用 waitForIdle()
  6. // 设置为 true, 表示添加的事件逐个按顺序执行(执行完一个再执行下一个)
  7. void setAutoWaitForIdle(boolean isOn)
  8. boolean isAutoWaitForIdle()
  9. // 设置此 Robot 每在生成一个事件后自动睡眠的毫秒数
  10. void setAutoDelay(int ms)
  11. int getAutoDelay()

一般开发步骤模(模拟鼠标事件):

  1. package com.xiets.robot;
  2. import java.awt.*;
  3. import java.awt.event.InputEvent;
  4. public class Main {
  5. public static void main(String[] args) throws AWTException {
  6. // 创建 Robot 实例
  7. Robot robot = new Robot();
  8. // 执行完一个事件后再执行下一个
  9. robot.setAutoWaitForIdle(true);
  10. // 移动鼠标到指定屏幕坐标
  11. robot.mouseMove(100, 100);
  12. // 按下鼠标左键
  13. robot.mousePress(InputEvent.BUTTON1_MASK);
  14. // 延时100毫秒
  15. robot.delay(100);
  16. // 释放鼠标左键(按下后必须要释放, 一次点击操作包含了按下和释放)
  17. robot.mouseRelease(InputEvent.BUTTON1_MASK);
  18. }
  19. }

发表评论

表情:
评论列表 (有 0 条评论,1023人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Processing鼠标键

    一、鼠标 1、鼠标坐标: Processing的2D坐标系统,是以窗口的左上角为起点,作为(0, 0)点,x轴正方向向右延伸,y轴正方向向下延伸。而描述鼠标的位置信息,用的