Используйте робота для ввода символов в Java

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

    Robot.keyPress(KeyEvent.VK_Y);

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

".  

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

5 ответов

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

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

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

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

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

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

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

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

FXRobot robot = FXRobotFactory.createRobot(scene);
robot.keyPress(KeyCode.QUOTE);
robot.keyPress(KeyCode.PERIOD);

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

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

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

Выход:

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

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

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

Другие вопросы по тегам