У меня есть следующий код:java.awt.Robot не работает, как ожидалось
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' – MadProgrammer
Исключение в потоке «AWT-EventQueue-0» java.lang.IllegalArgumentException: Неверная комбинация флажков кнопок – Zwischenzug
Я проверил свой ActionListener. 'if (e.getButton() == MouseEvent.BUTTON1) {' не работает? – Zwischenzug