2015-08-21 1 views

ответ

2

Этот метод делегирует AWTKeyStroke.getCachedStroke(keychar, VK_UNDEFINED, 0, false);, что в основном означает, что keyCode установлено на ноль. Он делает это, потому что не знает, что еще вы можете нажать, например Сдвиг, Ctrl и т.д.

метод вы, вероятно, ищет это getKeyChar(), который делает возвращение 'h'.

В качестве альтернативы вы можете позвонить KeyStroke.getKeyStroke('h', 0), в котором будут указаны модификаторы и, следовательно, будет иметь значение KeyCode.

0

Вместо KeyStroke.getKeyStroke (символ keyChar), попробуйте использовать KeyStroke.getKeyStroke (Character keyChar, внутр модификаторы) со значением модификатора 0. Другими словами, используйте:

KeyStroke.getKeyStroke('h', 0).getKeyCode(); 
+0

это дает мне значение INT 104, но KeyEvent.VK_H имеет 72. – EchoCache

+0

Клавиши VK не заботятся о верхнем/нижнем регистре, поэтому он дает код для капитала H, который равен 72. 104 - это код нижнего регистра h. – uoyilmaz