This low-level event is generated by a component object (such as a text
field) when a key is pressed, released, or typed.
The event is passed to every KeyListener
or KeyAdapter object which registered to receive such
events using the component's addKeyListener method.
(KeyAdapter objects implement the
KeyListener interface.) Each such listener object
gets this KeyEvent when the event occurs.
"Key typed" events are higher-level and generally do not depend on the platform or keyboard layout. They are generated when a Unicode character is entered, and are the preferred way to find out about character input. In the simplest case, a key typed event is produced by a single key press (e.g., 'a'). Often, however, characters are produced by series of key presses (e.g., 'shift' + 'a'), and the mapping from key pressed events to key typed events may be many-to-one or many-to-many. Key releases are not usually necessary to generate a key typed event, but there are some cases where the key typed event is not generated until a key is released (e.g., entering ASCII sequences via the Alt-Numpad method in Windows). No key typed events are generated for keys that don't generate Unicode characters (e.g., action keys, modifier keys, etc.).
The getKeyChar method always returns a valid Unicode character or CHAR_UNDEFINED. Character input is reported by KEY_TYPED events: KEY_PRESSED and KEY_RELEASED events are not necessarily associated with character input. Therefore, the result of the getKeyChar method is guaranteed to be meaningful only for KEY_TYPED events.
For key pressed and key released events, the getKeyCode method returns
the event's keyCode. For key typed events, the getKeyCode method
always returns VK_UNDEFINED. The getExtendedKeyCode method
may also be used with many international keyboard layouts.
"Key pressed" and "key released" events are lower-level and depend
on the platform and keyboard layout. They are generated whenever a key is
pressed or released, and are the only way to find out about keys that don't
generate character input (e.g., action keys, modifier keys, etc.). The key
being pressed or released is indicated by the getKeyCode and getExtendedKeyCode
methods, which return a virtual key code.
Virtual key codes are used to report which keyboard key has been pressed, rather than a character generated by the combination of one or more keystrokes (such as "A", which comes from shift and "a").
For example, pressing the Shift key will cause a KEY_PRESSED event with a VK_SHIFT keyCode, while pressing the 'a' key will result in a VK_A keyCode. After the 'a' key is released, a KEY_RELEASED event will be fired with VK_A. Separately, a KEY_TYPED event with a keyChar value of 'A' is generated.
Pressing and releasing a key on the keyboard results in the generating the following key events (in order):
But in some cases (e.g. auto-repeat or input method is activated) the order could be different (and platform dependent).KEY_PRESSEDKEY_TYPED(is only generated if a valid Unicode character could be generated.)KEY_RELEASED
Notes:
VK_Q when using a U.S. keyboard layout also
generates a unique code for Russian or Hebrew layout. There is no a
VK_ constant for these and many other codes in various layouts. These codes
may be obtained by using getExtendedKeyCode and are used whenever
a VK_ constant is used.
Warning
Aside from those keys that are defined by the Java language (VK_ENTER, VK_BACK_SPACE, and VK_TAB), do not rely on the values of the VK_ constants. The platform steward reserves the right to change these values as needed to accommodate a wider range of keyboards in the future.
An unspecified behavior will be caused if the id parameter
of any particular KeyEvent instance is not
in the range from KEY_FIRST to KEY_LAST.
KeyAdapter, KeyListener, Tutorial: Writing a Key Listener
| Modifier and Type | Field and Description |
|---|---|
| public static final char | CHAR_UNDEFINED
KEY_PRESSED and KEY_RELEASED events which do not map to a valid Unicode character use this for the keyChar value. |
| private transient long | |
| private boolean | |
| public static final int | KEY_FIRST
The first number in the range of ids used for key events. |
| public static final int | KEY_LAST
The last number in the range of ids used for key events. |
| public static final int | KEY_LOCATION_LEFT
A constant indicating that the key pressed or released is in the left key location (there is more than one possible location for this key). |
| public static final int | KEY_LOCATION_NUMPAD
A constant indicating that the key event originated on the numeric keypad or with a virtual key corresponding to the numeric keypad. |
| public static final int | KEY_LOCATION_RIGHT
A constant indicating that the key pressed or released is in the right key location (there is more than one possible location for this key). |
| public static final int | KEY_LOCATION_STANDARD
A constant indicating that the key pressed or released is not distinguished as the left or right version of a key, and did not originate on the numeric keypad (or did not originate with a virtual key corresponding to the numeric keypad). |
| public static final int | KEY_LOCATION_UNKNOWN
A constant indicating that the keyLocation is indeterminate or not relevant. |
| public static final int | KEY_PRESSED
The "key pressed" event. |
| public static final int | KEY_RELEASED
The "key released" event. |
| public static final int | KEY_TYPED
The "key typed" event. |
| pack-priv char | keyChar
|
| pack-priv int | keyCode
The unique value assigned to each of the keys on the keyboard. |
| pack-priv int | keyLocation
The location of the key on the keyboard. |
| private Component | |
| private transient long | |
| private transient long | |
| private transient long | |
| private static final long | serialVersionUID
Use serialVersionUID from JDK 1.1 for interoperability.
|
| public static final int | VK_0
Constant for the "0" key. |
| public static final int | VK_1
Constant for the "1" key. |
| public static final int | VK_2
Constant for the "2" key. |
| public static final int | VK_3
Constant for the "3" key. |
| public static final int | VK_4
Constant for the "4" key. |
| public static final int | VK_5
Constant for the "5" key. |
| public static final int | VK_6
Constant for the "6" key. |
| public static final int | VK_7
Constant for the "7" key. |
| public static final int | VK_8
Constant for the "8" key. |
| public static final int | VK_9
Constant for the "9" key. |
| public static final int | VK_A
Constant for the "A" key. |
| public static final int | VK_ACCEPT
Constant for the Accept or Commit function key. |
| public static final int | VK_ADD
Constant for the number pad add key. |
| public static final int | VK_AGAIN
Constant for the Again key. |
| public static final int | VK_ALL_CANDIDATES
Constant for the All Candidates function key. |
| public static final int | VK_ALPHANUMERIC
Constant for the Alphanumeric function key. |
| public static final int | VK_ALT
Constant for the ALT virtual key. |
| public static final int | VK_ALT_GRAPH
Constant for the AltGraph function key. |
| public static final int | VK_AMPERSAND
Constant for the "&" key. |
| public static final int | VK_ASTERISK
Constant for the "*" key. |
| public static final int | VK_AT
Constant for the "@" key. |
| public static final int | VK_B
Constant for the "B" key. |
| public static final int | VK_BACK_QUOTE
Constant for the BACK_QUOTE key. |
| public static final int | VK_BACK_SLASH
Constant for the back slash key, "\" |
| public static final int | VK_BACK_SPACE
Constant for the BACK_SPACE virtual key. |
| public static final int | VK_BEGIN
Constant for the Begin key. |
| public static final int | VK_BRACELEFT
Constant for the "{" key. |
| public static final int | VK_BRACERIGHT
Constant for the "}" key. |
| public static final int | VK_C
Constant for the "C" key. |
| public static final int | VK_CANCEL
Constant for the CANCEL virtual key. |
| public static final int | VK_CAPS_LOCK
Constant for the CAPS_LOCK virtual key. |
| public static final int | VK_CIRCUMFLEX
Constant for the "^" key. |
| public static final int | VK_CLEAR
Constant for the CLEAR virtual key. |
| public static final int | VK_CLOSE_BRACKET
Constant for the close bracket key, "]" |
| public static final int | VK_CODE_INPUT
Constant for the Code Input function key. |
| public static final int | VK_COLON
Constant for the ":" key. |
| public static final int | VK_COMMA
Constant for the comma key, "," |
| public static final int | VK_COMPOSE
Constant for the Compose function key. |
| public static final int | VK_CONTEXT_MENU
Constant for the Microsoft Windows Context Menu key. |
| public static final int | VK_CONTROL
Constant for the CONTROL virtual key. |
| public static final int | VK_CONVERT
Constant for the Convert function key. |
| public static final int | VK_COPY
Constant for the Copy key. |
| public static final int | VK_CUT
Constant for the Cut key. |
| public static final int | VK_D
Constant for the "D" key. |
| public static final int | VK_DEAD_ABOVEDOT
Constant for the Dead Above Dot key. |
| public static final int | VK_DEAD_ABOVERING
Constant for the Dead Above Ring key. |
| public static final int | VK_DEAD_ACUTE
Constant for the Dead Acute key. |
| public static final int | VK_DEAD_BREVE
Constant for the Dead Breve key. |
| public static final int | VK_DEAD_CARON
Constant for the Dead Caron key. |
| public static final int | VK_DEAD_CEDILLA
Constant for the Dead Cedilla key. |
| public static final int | VK_DEAD_CIRCUMFLEX
Constant for the Dead Circumflex key. |
| public static final int | VK_DEAD_DIAERESIS
Constant for the Dead Diaeresis key. |
| public static final int | VK_DEAD_DOUBLEACUTE
Constant for the Dead Double Acute key. |
| public static final int | VK_DEAD_GRAVE
Constant for the Dead Grave key. |
| public static final int | VK_DEAD_IOTA
Constant for the Dead Iota key. |
| public static final int | VK_DEAD_MACRON
Constant for the Dead Macron key. |
| public static final int | VK_DEAD_OGONEK
Constant for the Dead Ogonek key. |
| public static final int | VK_DEAD_SEMIVOICED_SOUND
Constant for the Dead Semivoiced Sound key. |
| public static final int | VK_DEAD_TILDE
Constant for the Dead Tilde key. |
| public static final int | VK_DEAD_VOICED_SOUND
Constant for the Dead Voiced Sound key. |
| public static final int | VK_DECIMAL
Constant for the number pad decimal point key. |
| public static final int | VK_DELETE
Constant for the delete key. |
| public static final int | VK_DIVIDE
Constant for the number pad divide key. |
| public static final int | VK_DOLLAR
Constant for the "$" key. |
| public static final int | VK_DOWN
Constant for the non-numpad down arrow key. |
| public static final int | VK_E
Constant for the "E" key. |
| public static final int | VK_END
Constant for the END virtual key. |
| public static final int | VK_ENTER
Constant for the ENTER virtual key. |
| public static final int | VK_EQUALS
Constant for the equals key, "=" |
| public static final int | VK_ESCAPE
Constant for the ESCAPE virtual key. |
| public static final int | VK_EURO_SIGN
Constant for the Euro currency sign key. |
| public static final int | VK_EXCLAMATION_MARK
Constant for the "!" key. |
| public static final int | VK_F
Constant for the "F" key. |
| public static final int | VK_F1
Constant for the F1 function key. |
| public static final int | VK_F10
Constant for the F10 function key. |
| public static final int | VK_F11
Constant for the F11 function key. |
| public static final int | VK_F12
Constant for the F12 function key. |
| public static final int | VK_F13
Constant for the F13 function key. |
| public static final int | VK_F14
Constant for the F14 function key. |
| public static final int | VK_F15
Constant for the F15 function key. |
| public static final int | VK_F16
Constant for the F16 function key. |
| public static final int | VK_F17
Constant for the F17 function key. |
| public static final int | VK_F18
Constant for the F18 function key. |
| public static final int | VK_F19
Constant for the F19 function key. |
| public static final int | VK_F2
Constant for the F2 function key. |
| public static final int | VK_F20
Constant for the F20 function key. |
| public static final int | VK_F21
Constant for the F21 function key. |
| public static final int | VK_F22
Constant for the F22 function key. |
| public static final int | VK_F23
Constant for the F23 function key. |
| public static final int | VK_F24
Constant for the F24 function key. |
| public static final int | VK_F3
Constant for the F3 function key. |
| public static final int | VK_F4
Constant for the F4 function key. |
| public static final int | VK_F5
Constant for the F5 function key. |
| public static final int | VK_F6
Constant for the F6 function key. |
| public static final int | VK_F7
Constant for the F7 function key. |
| public static final int | VK_F8
Constant for the F8 function key. |
| public static final int | VK_F9
Constant for the F9 function key. |
| public static final int | VK_FINAL
Constant for the FINAL key. |
| public static final int | VK_FIND
Constant for the Find key. |
| public static final int | VK_FULL_WIDTH
Constant for the Full-Width Characters function key. |
| public static final int | VK_G
Constant for the "G" key. |
| public static final int | VK_GREATER
Constant for the ">" key. |
| public static final int | VK_H
Constant for the "H" key. |
| public static final int | VK_HALF_WIDTH
Constant for the Half-Width Characters function key. |
| public static final int | VK_HELP
Constant for the HELP key. |
| public static final int | VK_HIRAGANA
Constant for the Hiragana function key. |
| public static final int | VK_HOME
Constant for the HOME virtual key. |
| public static final int | VK_I
Constant for the "I" key. |
| public static final int | VK_INPUT_METHOD_ON_OFF
Constant for the input method on/off key. |
| public static final int | VK_INSERT
Constant for the INSERT key. |
| public static final int | VK_INVERTED_EXCLAMATION_MARK
Constant for the inverted exclamation mark key. |
| public static final int | VK_J
Constant for the "J" key. |
| public static final int | VK_JAPANESE_HIRAGANA
Constant for the Japanese-Hiragana function key. |
| public static final int | VK_JAPANESE_KATAKANA
Constant for the Japanese-Katakana function key. |
| public static final int | VK_JAPANESE_ROMAN
Constant for the Japanese-Roman function key. |
| public static final int | VK_K
Constant for the "K" key. |
| public static final int | VK_KANA
Constant for the KANA lock key. |
| public static final int | VK_KANA_LOCK
Constant for the locking Kana function key. |
| public static final int | VK_KANJI
Constant for KANJI. |
| public static final int | VK_KATAKANA
Constant for the Katakana function key. |
| public static final int | VK_KP_DOWN
Constant for the numeric keypad down arrow key. |
| public static final int | VK_KP_LEFT
Constant for the numeric keypad left arrow key. |
| public static final int | VK_KP_RIGHT
Constant for the numeric keypad right arrow key. |
| public static final int | VK_KP_UP
Constant for the numeric keypad up arrow key. |
| public static final int | VK_L
Constant for the "L" key. |
| public static final int | VK_LEFT
Constant for the non-numpad left arrow key. |
| public static final int | VK_LEFT_PARENTHESIS
Constant for the "(" key. |
| public static final int | VK_LESS
Constant for the "<" key. |
| public static final int | VK_M
Constant for the "M" key. |
| public static final int | VK_META
Constant for the META key. |
| public static final int | VK_MINUS
Constant for the minus key, "-" |
| public static final int | VK_MODECHANGE
Constant for the MODECHANGE key. |
| public static final int | VK_MULTIPLY
Constant for the number pad multiply key. |
| public static final int | VK_N
Constant for the "N" key. |
| public static final int | VK_NONCONVERT
Constant for the Don't Convert function key. |
| public static final int | VK_NUM_LOCK
Constant for the NUM_LOCK key. |
| public static final int | VK_NUMBER_SIGN
Constant for the "#" key. |
| public static final int | VK_NUMPAD0
Constant for the number pad "0" key. |
| public static final int | VK_NUMPAD1
Constant for the number pad "1" key. |
| public static final int | VK_NUMPAD2
Constant for the number pad "2" key. |
| public static final int | VK_NUMPAD3
Constant for the number pad "3" key. |
| public static final int | VK_NUMPAD4
Constant for the number pad "4" key. |
| public static final int | VK_NUMPAD5
Constant for the number pad "5" key. |
| public static final int | VK_NUMPAD6
Constant for the number pad "6" key. |
| public static final int | VK_NUMPAD7
Constant for the number pad "7" key. |
| public static final int | VK_NUMPAD8
Constant for the number pad "8" key. |
| public static final int | VK_NUMPAD9
Constant for the number pad "9" key. |
| public static final int | VK_O
Constant for the "O" key. |
| public static final int | VK_OPEN_BRACKET
Constant for the open bracket key, "[" |
| public static final int | VK_P
Constant for the "P" key. |
| public static final int | VK_PAGE_DOWN
Constant for the PAGE_DOWN virtual key. |
| public static final int | VK_PAGE_UP
Constant for the PAGE_UP virtual key. |
| public static final int | VK_PASTE
Constant for the Paste key. |
| public static final int | VK_PAUSE
Constant for the PAUSE virtual key. |
| public static final int | VK_PERIOD
Constant for the period key, "." |
| public static final int | VK_PLUS
Constant for the "+" key. |
| public static final int | VK_PREVIOUS_CANDIDATE
Constant for the Previous Candidate function key. |
| public static final int | VK_PRINTSCREEN
Constant for the PRINTSCREEN key. |
| public static final int | VK_PROPS
Constant for the Props key. |
| public static final int | VK_Q
Constant for the "Q" key. |
| public static final int | VK_QUOTE
Constant for the QUOTE key. |
| public static final int | VK_QUOTEDBL
Constant for the """" key. |
| public static final int | VK_R
Constant for the "R" key. |
| public static final int | VK_RIGHT
Constant for the non-numpad right arrow key. |
| public static final int | VK_RIGHT_PARENTHESIS
Constant for the ")" key. |
| public static final int | VK_ROMAN_CHARACTERS
Constant for the Roman Characters function key. |
| public static final int | VK_S
Constant for the "S" key. |
| public static final int | VK_SCROLL_LOCK
Constant for the SCROLL_LOCK key. |
| public static final int | VK_SEMICOLON
Constant for the semicolon key, ";" |
| public static final int | VK_SEPARATER
This constant is obsolete, and is included only for backwards compatibility. |
| public static final int | VK_SEPARATOR
Constant for the Numpad Separator key. |
| public static final int | VK_SHIFT
Constant for the SHIFT virtual key. |
| public static final int | VK_SLASH
Constant for the forward slash key, "/" |
| public static final int | VK_SPACE
Constant for the SPACE virtual key. |
| public static final int | VK_STOP
Constant for the Stop key. |
| public static final int | VK_SUBTRACT
Constant for the number pad subtract key. |
| public static final int | VK_T
Constant for the "T" key. |
| public static final int | VK_TAB
Constant for the TAB virtual key. |
| public static final int | VK_U
Constant for the "U" key. |
| public static final int | VK_UNDEFINED
This value is used to indicate that the keyCode is unknown. |
| public static final int | VK_UNDERSCORE
Constant for the "_" key. |
| public static final int | VK_UNDO
Constant for the Undo key. |
| public static final int | VK_UP
Constant for the non-numpad up arrow key. |
| public static final int | VK_V
Constant for the "V" key. |
| public static final int | VK_W
Constant for the "W" key. |
| public static final int | VK_WINDOWS
Constant for the Microsoft Windows "Windows" key. |
| public static final int | VK_X
Constant for the "X" key. |
| public static final int | VK_Y
Constant for the "Y" key. |
| public static final int | VK_Z
Constant for the "Z" key. |
| Access | Constructor and Description |
|---|---|
| private | |
| public | KeyEvent(Component
The source, int Component that originated the eventAn integer indicating the type of event.
For information on allowable values, see
the class description for id, long KeyEventA long integer that specifies the time the event
occurred.
Passing negative or zero value
is not recommended when, int The modifier keys down during event (shift, ctrl,
alt, meta).
Passing negative value
is not recommended.
Zero value means that no modifiers were passed.
Use either an extended _DOWN_MASK or old _MASK modifiers,
however do not mix models in the one event.
The extended modifiers are preferred for using modifiers, int The integer code for an actual key, or VK_UNDEFINED
(for a key-typed event) keyCode, char The Unicode character generated by this event, or
CHAR_UNDEFINED (for key-pressed and key-released
events which do not map to a valid Unicode character) keyChar, int Identifies the key location. The only legal
values are keyLocation)KEY_LOCATION_UNKNOWN,
KEY_LOCATION_STANDARD, KEY_LOCATION_LEFT,
KEY_LOCATION_RIGHT, and KEY_LOCATION_NUMPAD.Constructs a |
| public | KeyEvent(Component
The source, int Component that originated the eventAn integer indicating the type of event.
For information on allowable values, see
the class description for id, long KeyEventA long integer that specifies the time the event
occurred.
Passing negative or zero value
is not recommended when, int The modifier keys down during event (shift, ctrl,
alt, meta).
Passing negative value
is not recommended.
Zero value means that no modifiers were passed.
Use either an extended _DOWN_MASK or old _MASK modifiers,
however do not mix models in the one event.
The extended modifiers are preferred for using modifiers, int The integer code for an actual key, or VK_UNDEFINED
(for a key-typed event) keyCode, char The Unicode character generated by this event, or
CHAR_UNDEFINED (for key-pressed and key-released
events which do not map to a valid Unicode character) keyChar)Constructs a |
| public | KeyEvent(Component
The source, int Component that originated the eventAn integer indicating the type of event.
For information on allowable values, see
the class description for id, long KeyEventA long integer that specifies the time the event
occurred.
Passing negative or zero value
is not recommended when, int The modifier keys down during event (shift, ctrl,
alt, meta).
Passing negative value
is not recommended.
Zero value means that no modifiers were passed.
Use either an extended _DOWN_MASK or old _MASK modifiers,
however do not mix models in the one event.
The extended modifiers are preferred for using modifiers, int The integer code for an actual key, or VK_UNDEFINED
(for a key-typed event) keyCode)
Deprecated
as of JDK1.1; use
KeyEvent(Component, int, long, int, int, char) instead
|
| Modifier and Type | Method and Description |
|---|---|
| public int | Returns: an extended key code for the eventReturns an extended key code for the event. |
| public static int | Returns: for a unicode character with a correspondingVK_ constant -- this
VK_ constant; for a character appearing on the primary
level of a known keyboard layout -- a unique integer.
If a character does not appear on the primary level of a known keyboard,
VK_UNDEFINED is returned.the unicode character to be processed c)Returns an extended key code for a unicode character. |
| public char | Returns: the Unicode character defined for this key event. If no valid Unicode character exists for this key event,CHAR_UNDEFINED is returned.Returns the character associated with the key in this event. |
| public int | Returns: the integer code for an actual key on the keyboard. (ForKEY_TYPED events, the keyCode is
VK_UNDEFINED.)Returns the integer keyCode associated with the key in this event. |
| public int | Returns: the location of the key that was pressed or released. Always returnsKEY_LOCATION_UNKNOWN for
KEY_TYPED events.Returns the location of the key that originated this key event. |
| public static String | Returns: string a text description of the combination of modifier keys that were held down during the eventthe modifier mask to be processed modifiers)
Deprecated
since 9. It is recommended that extended modifier keys and
InputEvent#getModifiersExText(int) be used instead
Returns a |
| public static String | Returns: a string containing a text description for a physical key, identified by its keyCodethe key whose description is to be returned keyCode)Returns a String describing the keyCode, such as "HOME", "F1" or "A". |
| private static native void | initIDs()
Hides java. Initialize JNI field and method IDs for fields that may be accessed from C. |
| public boolean | Returns: true if the key is an "action" key,
false otherwiseReturns whether the key in this event is an "action" key. |
| public String | Returns: a string identifying the event and its attributesOverrides java. Returns a parameter string identifying this event. |
| private void | |
| public void | setKeyChar(char
a char corresponding to the combination of keystrokes
that make up this event. keyChar)Set the keyChar value to indicate a logical character. |
| public void | setKeyCode(int
an integer corresponding to an actual key on the keyboard. keyCode)Set the keyCode value to indicate a physical key. |
| public void | setModifiers(int
an integer combination of the modifier constants. modifiers)
Deprecated
as of JDK1.1.4
Set the modifiers to indicate additional keys that were held down (e.g. shift, ctrl, alt, meta) defined as part of InputEvent. |
| private void | |
| private void |