如何用Java Robot输入非小键盘数字?

时间:2012-07-25 16:44:14

标签: java keyboard numbers keyevent awtrobot

我正在运行一个Java机器人类,我需要输入键盘键0-9(实际数字),但不是小键盘数字。出于某种原因,我使用的java applet(我没写过)不接受来自小键盘的0-9键,只接受标准键盘上方的0-9行。但是,Java机器人类似乎只有一个VK_NUMPAD#KeyEvent。起初,我尝试了VK_1事件,但结果与数字无关(而是与前0-9个ASCII字符无关)。有没有办法获得最重要的数字?我正在使用的机器人工作正常,并且会愉快地输入“VK_P”和“VK_UP”之类的键。 谢谢!

1 个答案:

答案 0 :(得分:0)

This应该是关键代码的权威链接。使用e.getKeyCode()时,我们看到VK_NUMPAD的代码分别为96-105,数字0-9。只有当num_lock打开时才会出现这种情况,因为如果它已关闭,您将获得其他代码。

您对VK_1的尝试应该是正确的。这是代码49,其对应于已被推动的顶行上的1。我用我的applet尝试了这个。我陷入了KeyListener,我确认这是正确的。 48-57对应于顶行的0-9,它在我给出的链接中列为VK_0 ... VK_9。必须有某种覆盖(如num_lock键覆盖数字键盘)重新映射它,因为我说VK_1是键盘顶部1个字符的正确答案。