我目前正在开发一个基本的实用软件,它能够记录键盘和鼠标输入,将输入保存到 .txt 文件,并在文件中播放数据。我正在修改程序以添加文件和播放功能。我遇到的问题是鼠标移动方法中的 Robot.mousePress() 方法:
public static void executeMouseMovementData() {
mouseRobot.mousePress(InputEvent.BUTTON1_MASK);
for (int i=0; i < MouseDataHandler.mouseData.size(); i++) {
mouseRobot.moveMouse(MouseDataHandler.mouseData.get(i).getX(), MouseDataHandler.mouseData.get(i).getY());
mouseRobot.delay(MouseDataHandler.mouseData.get(i).getTimeElapsed());
}
mouseRobot.releaseMouse();
}
该程序遵循事件的基本顺序:1 数据初始化,2 按下鼠标,3 移动鼠标,4 释放鼠标。与我成功实现的另一种方法不同,这种方法在任何时候都不会无缘无故地按下鼠标。鼠标移动与播放功能完美配合。我似乎无法让机器人执行除移动之外的任何类型的鼠标事件,即使我重组了方法。
我尝试编辑该方法以确保机器人在按下 GUI 上的“播放”按钮时不按下鼠标,以免弄乱鼠标事件的焦点。该错误可能与代码的其他方面无关,因为程序中的其他所有内容都运行顺利。对象“mouseRobot”是Java.awt.Robot 类的基本扩展类,具有复合Robot mouse methods() 的基本接口,我什至直接从Robot 类调用mousePress 方法。
这种方法可能会出现什么故障?