Use a robot to type characters in Java

风格不统一 提交于 2019-11-28 13:59:13

You can't always just use the KeyEvent.VK... variable.

For example on my keyboard the "%" character is above the "5". To use a Robot to type a "5", the code would be:

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

and use a Robot to type a "%", the code would be:

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

If you wanted to use Robot, KeyEvent has VK_QUOTE and VK_PERIOD constants. All of these constants and more are available through the KeyEvent API

Previous Robots seem to be deprecated.

For the time being, for JavaFX, there's FXRobot

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

What do you mean by "programmatically type these characters?"

You can use a backslash (\) to print a double-quote, but you don't need anything special for the period:

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

Output:

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

Your question is not clear, but to print the characters you can use a stream using the following snippet as a template:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!