如何在不使用 java.awt.robot 的情况下模拟 mousePressed 事件?

发布于 2024-10-30 09:23:58 字数 274 浏览 1 评论 0原文

我想在 Java 中模拟 mousePressed 事件,我发现我可以使用 Robot 类来实现此目的,并且它可以工作,但只能在 Windows 中而不是在 Mac OS X 中。

有谁知道模拟 mousePressed 事件的替代方法?

这是我使用的代码:

Robot robot = new Robot();
robot.mousePress(InputEvent.BUTTON1_MASK);

I want to simulate a mousePressed event in Java, I found out that I can use the Robot class for this, and it works, but only in Windows and not in Mac OS X.

Does anyone know of an alternative way to simulate a mousePressed event?

This is the code I used:

Robot robot = new Robot();
robot.mousePress(InputEvent.BUTTON1_MASK);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不气馁 2024-11-06 09:23:58

如果您想模拟 JButton 上的单击操作,您可以调用 doClick 方法,请查看 此处。否则,也许这个 类似的问题可以帮助你。
希望这有帮助。

If you want to simulate the click action on a JButton you can invoke the doClick method, take a look here. Otherwise, maybe this similar question can help you.
Hope this helps.

往事随风而去 2024-11-06 09:23:58

我在使用 java.awt.robot.mousePress(int button) 时遇到了同样的问题,无法在 mac os x 10.8 上工作
通过检查

int b = InputEvent.getMaskForButton(MouseEvent.BUTTON1); //1024  
int c = InputEvent.BUTTON1_MASK; //8  
// works on mac  
Robot r = new Robot();  
r.mouseMove(500, 500);  
r.mousePress(1024);  
r.mouseRelease(1024);  

I had the same issue with using java.awt.robot.mousePress(int button) not working on a mac os x 10.8
by checking

int b = InputEvent.getMaskForButton(MouseEvent.BUTTON1); //1024  
int c = InputEvent.BUTTON1_MASK; //8  
// works on mac  
Robot r = new Robot();  
r.mouseMove(500, 500);  
r.mousePress(1024);  
r.mouseRelease(1024);  
半葬歌 2024-11-06 09:23:58

这是一个有帮助的示例代码。

private final class ContractMouseAdapter extends MouseAdapter {

    @Override
    public void mousePressed(MouseEvent e) {
        // Do whatever you want.
    }

}

并在您的 Swing 代码中将此适配器称为

MouseAdapter mouseAction = new ContractMouseAdapter(Component);

Here is a sample code that will help.

private final class ContractMouseAdapter extends MouseAdapter {

    @Override
    public void mousePressed(MouseEvent e) {
        // Do whatever you want.
    }

}

And call this adapter in ur Swing code as

MouseAdapter mouseAction = new ContractMouseAdapter(Component);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文