Как я могу симулировать событие mousePressed без использования java.awt.robot? - PullRequest
3 голосов
/ 03 апреля 2011

Я хочу смоделировать событие mousePressed в Java, я обнаружил, что для этого могу использовать класс Robot, и он работает, но только в Windows, а не в Mac OS X.

Кто-нибудь знает альтернативный способ имитации события mousePressed?

Это код, который я использовал:

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2011

Если вы хотите смоделировать действие щелчка на JButton, вы можете вызвать метод doClick, посмотрите здесь .В противном случае, возможно, этот похожий вопрос может вам помочь.Надеюсь, это поможет.

1 голос
/ 18 января 2014

У меня была та же проблема с использованием 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);  
0 голосов
/ 07 апреля 2011

Вот пример кода, который поможет.

private final class ContractMouseAdapter extends MouseAdapter {

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

}

И назовите этот адаптер в вашем Swing-коде как

MouseAdapter mouseAction = new ContractMouseAdapter(Component);
...