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

时间:2011-04-03 09:44:13

标签: java mouseevent awtrobot

我想在Java中模拟一个mousePressed事件,我发现我可以使用Robot类来实现它,它可以工作,但仅适用于Windows而不适用于Mac OS X.

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

这是我使用的代码:

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

3 个答案:

答案 0 :(得分:2)

如果您要模拟JButton上的点击操作,可以调用doClick方法,请查看here。否则,也许这个similar question可以帮到你。 希望这会有所帮助。

答案 1 :(得分:1)

使用java.awt.robot.mousePress(int按钮)不能在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);  

答案 2 :(得分:0)

以下是一个有用的示例代码。

private final class ContractMouseAdapter extends MouseAdapter {

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

}

在你的Swing代码中调用此适配器为

MouseAdapter mouseAction = new ContractMouseAdapter(Component);