I\'m using Netbeans\' bean form to create my GUI.
I\'ve added a keyTyped event to a JTextArea and I want to detect if the typed key is a Backspace.
I\'
backspace and delete have the following constants:
VK_BACK_SPACE
VK_DELETE
Constants are listed here: Class KeyEvent
From docs.oracle.com
WARNING: Aside from those keys that are defined by the Java language (
VK_ENTER,VK_BACK_SPACE, andVK_TAB), do not rely on the values of theVK_constants. Sun reserves the right to change these values as needed to accomodate a wider range of keyboards in the future.
Aside from that, I suggest you use keyPressed() or keyReleased() since keyTyped() is only used for keys that produce characters. Keys backspace and delete do not produce characters.
Additional:
getKeyChar() works well with KEY_TYPED, as mentioned here:
The
getKeyCharmethod always returns a valid Unicode character orCHAR_UNDEFINED. Character input is reported byKEY_TYPEDevents:KEY_PRESSEDandKEY_RELEASEDevents are not necessarily associated with character input.Therefore, the result of the
getKeyCharmethod is guaranteed to be meaningful only forKEY_TYPEDevents.
You can take a look at these links:
The keyTyped() event is only used for keys that produce character input.
"Key typed" events are higher-level and generally do not depend on the platform or keyboard layout.
You cannot use keyTyped, you need to use either keyPressed or keyReleased to determine if backspace character has been typed. The keyTyped event only picks up non-escape characters (only characters that can be displayed).
The backspace character can be checked with KeyEvent.VK_BACK_SPACE.
Try adding this listener to the keyPressed event:
import java.awt.event.KeyEvent;
private void langArea1KeyPressed(KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
// Do something...
}
}
You can check out the official Java tutorial on How to Write a Key Listener.