Control key is not getting detected
-
30-06-2021 - |
문제
This key event is not working. The same code is working for,
VK_SPACE
Its not working for control
private void jTextArea1KeyPressed(java.awt.event.KeyEvent evt) {
if ((evt.getKeyChar() == KeyEvent.VK_CONTROL)) {
System.out.println("CONTROL IS PRESSED");
}
}
해결책
Don't use getKeyChar
in combination with those VK_
constants. Use getKeyCode
instead. getKeyChar
is for printable keys only, which result in a character being printed in normal operations. getKeyCode
, on the other hand, is intended to give you the code (i.e. the VK_
constant) of the key pressed, even if there is no associated character (as in the case of Ctrl).
See also this answer.
다른 팁
there no reason to use
KeyListener
orKeyBindings
orAWTEventDispatch
use DocumentListener for JTextComponents for event to outside from
JTextCompoent
use DocumentFilter for filtering inside Document
There is a method on the java.awt.event.KeyEvent
just for your purpose - isControlDown()