我正在编写一个基本程序,要求用户键入一个字符串,我正在尝试使用一个Robot(来自java.awt.Robot),它将在延迟后将此消息键入另一个文档.我现在遇到的问题是我需要将我得到的任何内容转换message.charAt(i)为KeyEvent.VK_[insert Char]KeyCode.有没有更好的方法来做我想做的事情?我想我总是可以得到一个大规模的switch语句来获得适当的KeyCode,但我希望有一个更优雅的方式.我第一次想到,已经做了一段时间的python,就是创建一个字符串"KeyEvent.VK_" + message.charAt(i)并将其转换为代码,但我认为唯一的方法是使用不鼓励的反射.
Ste*_*e K 20
如果我有一个unicode角色,我只想知道它的击键,那么我就用了
int keyCode = java.awt.event.KeyEvent.getExtendedKeyCodeForChar(charCode);
Run Code Online (Sandbox Code Playgroud)
我从来没有需要另一种更复杂的方法来做到这一点.
Wol*_*fii 10
你可以用这个来解决问题:
KeyStroke ks = KeyStroke.getKeyStroke('k', 0);
System.out.println(ks.getKeyCode());
Run Code Online (Sandbox Code Playgroud)
或者只是使用这个:
private void writeString(String s) {
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isUpperCase(c)) {
robot.keyPress(KeyEvent.VK_SHIFT);
}
robot.keyPress(Character.toUpperCase(c));
robot.keyRelease(Character.toUpperCase(c));
if (Character.isUpperCase(c)) {
robot.keyRelease(KeyEvent.VK_SHIFT);
}
}
robot.delay(delay);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30921 次 |
| 最近记录: |