我添加了键盘事件....机器人类'对象用于在记事本上写入键值.....但是当我按“a”时它会将其解释为“1”等等......所有的钥匙......
当我显示所有键的asci值时,它将打印准确的值,如a-97,b-98等......
为什么会发生这种情况请给出解决方案......
答案 0 :(得分:2)
Robot.keyPress
方法接受int
密钥代码 - 而不是实际的字符代码。
有关keycode
的文档:
keycode - Key to press (e.g. KeyEvent.VK_A)
因此,输入以下内容将不起作用:
Robot r = new Robot();
r.keyPress('a'); // Won't work -- it will press an "1"
要正常工作,必须使用KeyEvent
中的常量:
Robot r = new Robot();
r.keyPress(KeyEvent.VK_A); // This works -- it will press an "a"
此外,如果想要使用KeyEvent
的事件(例如KeyListener
和keyPressed
)返回的keyReleased
,则KeyEvent
对象具有一个getKeyCode
方法,它将返回事件的keycode
。