Метод 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
события.