使用awt包中的Robot class双击事件

Double click event using Robot class in awt package

我已经看到很多关于使用 MouseEvent 双击事件的帖子。但这不是我要找的。我最近开始使用 Robot class 并遇到了一些鼠标功能,例如 mouseMove(x,y)mouseRelease(int buttons).

Robot class 也提供 mousePress(int button); 功能。我试过这个。

Robot robot = new Robot();
robot.mouseMove(305, 450);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);

但是这是一个单击事件。我想要实现的是使用 Robot class 的双击事件。有可能实现吗?如果是这样。那怎么办?

Robot class 没有提供双击的方法。您必须自己实施。想一想真正的双击是什么,它是快速连续的两次单击。 (根据您的 OS 设置,点击之间所需的时间可能会有所不同。)

所以你真的只需要非常快地点击两次:

Robot robot = new Robot();
robot.mouseMove(305, 450);
// first click
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
// second click
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);

您可能还想在两次点击之间添加几毫秒的延迟,因为有些东西可能无法很好地响应太快的点击。