У меня есть следующий код:
autoPlay = new Robot();
autoPlay.setAutoDelay(500);
autoPlay.mouseMove((game.getLocationOnScreen().x + 1), (game.getLocationOnScreen().y + 1));
autoPlay.mousePress(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseMove((game.getLocationOnScreen().x + 381), (game.getLocationOnScreen().y + 1));
autoPlay.mousePress(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseMove((game.getLocationOnScreen().x + 1), (game.getLocationOnScreen().y + 381));
autoPlay.mousePress(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseMove((game.getLocationOnScreen().x + 381), (game.getLocationOnScreen().y + 381));
autoPlay.mousePress(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
autoPlay.mouseMove(currentX, currentY);
Согласно коду, робот должен переместиться в верхний левый угол панели JPanel, которую я назвал game
. Затем следует нажать и отпустить левую кнопку мыши. Затем его следует переместить в правый верхний угол и нажать/отпустить левую кнопку мыши. Затем его следует переместить в левый нижний угол и нажать/отпустить левую кнопку мыши. Затем его следует переместить в правый нижний угол и нажать/отпустить правую кнопку мыши. Наконец, он должен вернуться в верхний левый угол.
Однако происходит то, что робот перемещается по углам, но не щелкает. Он щелкает только один раз, когда возвращается в верхний левый угол в конце кода. Мне интересно, является ли мой JDK/SDK источником проблемы или я не понимаю класс Robot.
MouseEvent.BUTTON1
вместоInputEvent.BUTTON1_DOWN_MASK
- person MadProgrammer   schedule 06.03.2013if (e.getButton() == MouseEvent.BUTTON1) {
разве это не работает? - person shdw   schedule 06.03.2013ActionListener
? Где это в примере кода? - person MadProgrammer   schedule 06.03.2013ActionListener
не записывают то, что их вызвало, а только то, что они произошли.ActionEvent
не имеет методаgetButton
?? - person MadProgrammer   schedule 06.03.2013Robot
в EDT, см. ответ, который я сделал, он запускаетRobot
в отдельном потоке. - person MadProgrammer   schedule 06.03.2013