Используйте робота для ввода символов в Java - PullRequest
3 голосов
/ 10 июля 2011

Я знаю, как сделать так, чтобы робот имитировал нажатие клавиши Y так:

    Robot.keyPress(KeyEvent.VK_Y);

Но как мне заставить робота нажать цитату и точку ?:

".  

Может ли кто-нибудь предоставить мне справочную страницу или образец кода?

Ответы [ 5 ]

11 голосов
/ 10 июля 2011

Вы не всегда можете просто использовать переменную KeyEvent.VK ....

Например, на моей клавиатуре символ «%» выше «5». Чтобы использовать робота для ввода «5», код будет:

robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);

и используйте Robot для ввода "%", код будет:

robot.keyPress(KeyEvent.VK_SHIFT); 
robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);
robot.keyRelease(KeyEvent.VK_SHIFT);
2 голосов
/ 10 июля 2011

Если вы хотите использовать Robot, KeyEvent имеет константы VK_QUOTE и VK_PERIOD. Все эти и другие константы доступны через KeyEvent API

0 голосов
/ 07 февраля 2018

Предыдущие Robot s, кажется, устарели.

В настоящее время для JavaFX есть FXRobot

FXRobot robot = FXRobotFactory.createRobot(scene);
robot.keyPress(KeyCode.QUOTE);
robot.keyPress(KeyCode.PERIOD);
0 голосов
/ 10 июля 2011

Ваш вопрос неясен, но для печати символов вы можете использовать поток, используя следующий фрагмент в качестве шаблона:

System.out.println ("\". ");

0 голосов
/ 10 июля 2011

Что вы подразумеваете под "программным вводом этих символов?"

Вы можете использовать обратную косую черту (\), чтобы напечатать двойную кавычку, но вам не нужно ничего особенного в течение периода:

System.out.println("This is a quote symbol: \" and this is a period: .");

Выход:

This is a quote symbol: " and this is a period: .
...