событие клавиатуры - PullRequest
0 голосов
/ 18 июня 2009

я добавил события клавиатуры .... с объектом класса робота для записи значений клавиш в блокноте ..... но когда я нажимаю "a" , он будет интерпретироваться как "1" и так далее ... для всех ключей ...

когда я отображаю значения asci для всех клавиш, он напечатает точные значения, такие как a-97, b-98 и т. Д. *

почему это произошло, пожалуйста, дайте какое-нибудь решение ....

1 Ответ

2 голосов
/ 18 июня 2009

Метод 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 s, возвращаемые событиями KeyListener, такими как keyPressed и keyReleased, объект KeyEvent имеет getKeyCode метод, который вернет keycode события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...