在awt包中使用Robot类双击事件

问题描述 投票:0回答:1

我已经看到很多关于使用MouseEvent的双击事件的线程。但这不是我想要的。我最近开始使用Robot类,并且遇到了像mouseMove(x,y)mouseRelease(int buttons)这样的鼠标功能。

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

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

但这是单击事件。我想要实现的是使用Robot类的双击事件。是否有可能实现这一目标?如果是这样。那怎么样?

java awt awtrobot
1个回答
3
投票

Robot类不提供双击方式。你必须自己实现它。想想双击真的是什么,快速连续两次点击。 (根据您的操作系统设置,点击之间所需的时间可能会有所不同。)

所以你真的只需要快速点击两次:

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);

您可能还希望在两次点击之间添加几毫秒的延迟,因为某些内容可能无法很好地响应过快的点击。

© www.soinside.com 2019 - 2024. All rights reserved.