键盘事件

时间:2009-06-18 02:48:17

标签: java

我添加了键盘事件....机器人类'对象用于在记事本上写入键值.....但是当我按“a”时它会将其解释为“1”等等......所有的钥匙......

当我显示所有键的asci值时,它将打印准确的值,如a-97,b-98等......

为什么会发生这种情况请给出解决方案......

1 个答案:

答案 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的事件(例如KeyListenerkeyPressed)返回的keyReleased,则KeyEvent对象具有一个getKeyCode方法,它将返回事件的keycode