java.lang.Object | |||||
↳ | java.util.EventObject | ||||
↳ | java.awt.AWTEvent | ||||
↳ | java.awt.event.ComponentEvent | ||||
↳ | java.awt.event.InputEvent | ||||
↳ | java.awt.event.KeyEvent |
Known Direct Subclasses |
An event which indicates that a keystroke occurred in a component.
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.
"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 method, which returns 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_PRESSED
KEY_TYPED
(is only generated if a valid Unicode character could be generated.)KEY_RELEASED
Notes:
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. Sun reserves the right to change these values as needed to accomodate a wider range of keyboards in the future.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
char | CHAR_UNDEFINED | KEY_PRESSED and KEY_RELEASED events which do not map to a valid Unicode character use this for the keyChar value. | |||||||||
int | KEY_FIRST | The first number in the range of ids used for key events. | |||||||||
int | KEY_LAST | The last number in the range of ids used for key events. | |||||||||
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). | |||||||||
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. | |||||||||
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). | |||||||||
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). | |||||||||
int | KEY_LOCATION_UNKNOWN | A constant indicating that the keyLocation is indeterminate or not relevant. | |||||||||
int | KEY_PRESSED | The "key pressed" event. | |||||||||
int | KEY_RELEASED | The "key released" event. | |||||||||
int | KEY_TYPED | The "key typed" event. | |||||||||
int | VK_0 | VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) | |||||||||
int | VK_1 | ||||||||||
int | VK_2 | ||||||||||
int | VK_3 | ||||||||||
int | VK_4 | ||||||||||
int | VK_5 | ||||||||||
int | VK_6 | ||||||||||
int | VK_7 | ||||||||||
int | VK_8 | ||||||||||
int | VK_9 | ||||||||||
int | VK_A | VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) | |||||||||
int | VK_ACCEPT | Constant for the Accept or Commit function key. | |||||||||
int | VK_ADD | ||||||||||
int | VK_AGAIN | ||||||||||
int | VK_ALL_CANDIDATES | Constant for the All Candidates function key. | |||||||||
int | VK_ALPHANUMERIC | Constant for the Alphanumeric function key. | |||||||||
int | VK_ALT | ||||||||||
int | VK_ALT_GRAPH | Constant for the AltGraph function key. | |||||||||
int | VK_AMPERSAND | ||||||||||
int | VK_ASTERISK | ||||||||||
int | VK_AT | Constant for the "@" key. | |||||||||
int | VK_B | ||||||||||
int | VK_BACK_QUOTE | ||||||||||
int | VK_BACK_SLASH | Constant for the back slash key, "\" | |||||||||
int | VK_BACK_SPACE | ||||||||||
int | VK_BEGIN | Constant for the Begin key. | |||||||||
int | VK_BRACELEFT | ||||||||||
int | VK_BRACERIGHT | ||||||||||
int | VK_C | ||||||||||
int | VK_CANCEL | ||||||||||
int | VK_CAPS_LOCK | ||||||||||
int | VK_CIRCUMFLEX | Constant for the "^" key. | |||||||||
int | VK_CLEAR | ||||||||||
int | VK_CLOSE_BRACKET | Constant for the close bracket key, "]" | |||||||||
int | VK_CODE_INPUT | Constant for the Code Input function key. | |||||||||
int | VK_COLON | Constant for the ":" key. | |||||||||
int | VK_COMMA | Constant for the comma key, "," | |||||||||
int | VK_COMPOSE | Constant for the Compose function key. | |||||||||
int | VK_CONTEXT_MENU | Constant for the Microsoft Windows Context Menu key. | |||||||||
int | VK_CONTROL | ||||||||||
int | VK_CONVERT | Constant for the Convert function key. | |||||||||
int | VK_COPY | ||||||||||
int | VK_CUT | ||||||||||
int | VK_D | ||||||||||
int | VK_DEAD_ABOVEDOT | ||||||||||
int | VK_DEAD_ABOVERING | ||||||||||
int | VK_DEAD_ACUTE | ||||||||||
int | VK_DEAD_BREVE | ||||||||||
int | VK_DEAD_CARON | ||||||||||
int | VK_DEAD_CEDILLA | ||||||||||
int | VK_DEAD_CIRCUMFLEX | ||||||||||
int | VK_DEAD_DIAERESIS | ||||||||||
int | VK_DEAD_DOUBLEACUTE | ||||||||||
int | VK_DEAD_GRAVE | ||||||||||
int | VK_DEAD_IOTA | ||||||||||
int | VK_DEAD_MACRON | ||||||||||
int | VK_DEAD_OGONEK | ||||||||||
int | VK_DEAD_SEMIVOICED_SOUND | ||||||||||
int | VK_DEAD_TILDE | ||||||||||
int | VK_DEAD_VOICED_SOUND | ||||||||||
int | VK_DECIMAL | ||||||||||
int | VK_DELETE | ||||||||||
int | VK_DIVIDE | ||||||||||
int | VK_DOLLAR | Constant for the "$" key. | |||||||||
int | VK_DOWN | Constant for the non-numpad down arrow key. | |||||||||
int | VK_E | ||||||||||
int | VK_END | ||||||||||
int | VK_ENTER | ||||||||||
int | VK_EQUALS | Constant for the equals key, "=" | |||||||||
int | VK_ESCAPE | ||||||||||
int | VK_EURO_SIGN | Constant for the Euro currency sign key. | |||||||||
int | VK_EXCLAMATION_MARK | Constant for the "!" key. | |||||||||
int | VK_F | ||||||||||
int | VK_F1 | Constant for the F1 function key. | |||||||||
int | VK_F10 | Constant for the F10 function key. | |||||||||
int | VK_F11 | Constant for the F11 function key. | |||||||||
int | VK_F12 | Constant for the F12 function key. | |||||||||
int | VK_F13 | Constant for the F13 function key. | |||||||||
int | VK_F14 | Constant for the F14 function key. | |||||||||
int | VK_F15 | Constant for the F15 function key. | |||||||||
int | VK_F16 | Constant for the F16 function key. | |||||||||
int | VK_F17 | Constant for the F17 function key. | |||||||||
int | VK_F18 | Constant for the F18 function key. | |||||||||
int | VK_F19 | Constant for the F19 function key. | |||||||||
int | VK_F2 | Constant for the F2 function key. | |||||||||
int | VK_F20 | Constant for the F20 function key. | |||||||||
int | VK_F21 | Constant for the F21 function key. | |||||||||
int | VK_F22 | Constant for the F22 function key. | |||||||||
int | VK_F23 | Constant for the F23 function key. | |||||||||
int | VK_F24 | Constant for the F24 function key. | |||||||||
int | VK_F3 | Constant for the F3 function key. | |||||||||
int | VK_F4 | Constant for the F4 function key. | |||||||||
int | VK_F5 | Constant for the F5 function key. | |||||||||
int | VK_F6 | Constant for the F6 function key. | |||||||||
int | VK_F7 | Constant for the F7 function key. | |||||||||
int | VK_F8 | Constant for the F8 function key. | |||||||||
int | VK_F9 | Constant for the F9 function key. | |||||||||
int | VK_FINAL | ||||||||||
int | VK_FIND | ||||||||||
int | VK_FULL_WIDTH | Constant for the Full-Width Characters function key. | |||||||||
int | VK_G | ||||||||||
int | VK_GREATER | ||||||||||
int | VK_H | ||||||||||
int | VK_HALF_WIDTH | Constant for the Half-Width Characters function key. | |||||||||
int | VK_HELP | ||||||||||
int | VK_HIRAGANA | Constant for the Hiragana function key. | |||||||||
int | VK_HOME | ||||||||||
int | VK_I | ||||||||||
int | VK_INPUT_METHOD_ON_OFF | Constant for the input method on/off key. | |||||||||
int | VK_INSERT | ||||||||||
int | VK_INVERTED_EXCLAMATION_MARK | Constant for the inverted exclamation mark key. | |||||||||
int | VK_J | ||||||||||
int | VK_JAPANESE_HIRAGANA | Constant for the Japanese-Hiragana function key. | |||||||||
int | VK_JAPANESE_KATAKANA | Constant for the Japanese-Katakana function key. | |||||||||
int | VK_JAPANESE_ROMAN | Constant for the Japanese-Roman function key. | |||||||||
int | VK_K | ||||||||||
int | VK_KANA | ||||||||||
int | VK_KANA_LOCK | Constant for the locking Kana function key. | |||||||||
int | VK_KANJI | ||||||||||
int | VK_KATAKANA | Constant for the Katakana function key. | |||||||||
int | VK_KP_DOWN | Constant for the numeric keypad down arrow key. | |||||||||
int | VK_KP_LEFT | Constant for the numeric keypad left arrow key. | |||||||||
int | VK_KP_RIGHT | Constant for the numeric keypad right arrow key. | |||||||||
int | VK_KP_UP | Constant for the numeric keypad up arrow key. | |||||||||
int | VK_L | ||||||||||
int | VK_LEFT | Constant for the non-numpad left arrow key. | |||||||||
int | VK_LEFT_PARENTHESIS | Constant for the "(" key. | |||||||||
int | VK_LESS | ||||||||||
int | VK_M | ||||||||||
int | VK_META | ||||||||||
int | VK_MINUS | Constant for the minus key, "-" | |||||||||
int | VK_MODECHANGE | ||||||||||
int | VK_MULTIPLY | ||||||||||
int | VK_N | ||||||||||
int | VK_NONCONVERT | Constant for the Don't Convert function key. | |||||||||
int | VK_NUMBER_SIGN | Constant for the "#" key. | |||||||||
int | VK_NUMPAD0 | ||||||||||
int | VK_NUMPAD1 | ||||||||||
int | VK_NUMPAD2 | ||||||||||
int | VK_NUMPAD3 | ||||||||||
int | VK_NUMPAD4 | ||||||||||
int | VK_NUMPAD5 | ||||||||||
int | VK_NUMPAD6 | ||||||||||
int | VK_NUMPAD7 | ||||||||||
int | VK_NUMPAD8 | ||||||||||
int | VK_NUMPAD9 | ||||||||||
int | VK_NUM_LOCK | ||||||||||
int | VK_O | ||||||||||
int | VK_OPEN_BRACKET | Constant for the open bracket key, "[" | |||||||||
int | VK_P | ||||||||||
int | VK_PAGE_DOWN | ||||||||||
int | VK_PAGE_UP | ||||||||||
int | VK_PASTE | ||||||||||
int | VK_PAUSE | ||||||||||
int | VK_PERIOD | Constant for the period key, "." | |||||||||
int | VK_PLUS | Constant for the "+" key. | |||||||||
int | VK_PREVIOUS_CANDIDATE | Constant for the Previous Candidate function key. | |||||||||
int | VK_PRINTSCREEN | ||||||||||
int | VK_PROPS | ||||||||||
int | VK_Q | ||||||||||
int | VK_QUOTE | ||||||||||
int | VK_QUOTEDBL | ||||||||||
int | VK_R | ||||||||||
int | VK_RIGHT | Constant for the non-numpad right arrow key. | |||||||||
int | VK_RIGHT_PARENTHESIS | Constant for the ")" key. | |||||||||
int | VK_ROMAN_CHARACTERS | Constant for the Roman Characters function key. | |||||||||
int | VK_S | ||||||||||
int | VK_SCROLL_LOCK | ||||||||||
int | VK_SEMICOLON | Constant for the semicolon key, ";" | |||||||||
int | VK_SEPARATER | This constant is obsolete, and is included only for backwards compatibility. | |||||||||
int | VK_SEPARATOR | Constant for the Numpad Separator key. | |||||||||
int | VK_SHIFT | ||||||||||
int | VK_SLASH | Constant for the forward slash key, "/" | |||||||||
int | VK_SPACE | ||||||||||
int | VK_STOP | ||||||||||
int | VK_SUBTRACT | ||||||||||
int | VK_T | ||||||||||
int | VK_TAB | ||||||||||
int | VK_U | ||||||||||
int | VK_UNDEFINED | This value is used to indicate that the keyCode is unknown. | |||||||||
int | VK_UNDERSCORE | Constant for the "_" key. | |||||||||
int | VK_UNDO | ||||||||||
int | VK_UP | Constant for the non-numpad up arrow key. | |||||||||
int | VK_V | ||||||||||
int | VK_W | ||||||||||
int | VK_WINDOWS | Constant for the Microsoft Windows "Windows" key. | |||||||||
int | VK_X | ||||||||||
int | VK_Y | ||||||||||
int | VK_Z |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.awt.event.InputEvent
| |||||||||||
From class
java.awt.event.ComponentEvent
| |||||||||||
From class
java.awt.AWTEvent
|
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.awt.AWTEvent
| |||||||||||
From class
java.util.EventObject
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a
KeyEvent object. | |||||||||||
This constructor is deprecated.
as of JDK1.1
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the character associated with the key in this event.
| |||||||||||
Returns the integer keyCode associated with the key in this event.
| |||||||||||
Returns the location of the key that originated this key event.
| |||||||||||
Returns a
String describing the modifier key(s),
such as "Shift", or "Ctrl+Shift". | |||||||||||
Returns a String describing the keyCode, such as "HOME", "F1" or "A".
| |||||||||||
Returns whether the key in this event is an "action" key.
| |||||||||||
Returns a parameter string identifying this event.
| |||||||||||
Set the keyChar value to indicate a logical character.
| |||||||||||
Set the keyCode value to indicate a physical key.
| |||||||||||
This method is deprecated.
as of JDK1.1.4
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.awt.event.InputEvent
| |||||||||||
From class
java.awt.event.ComponentEvent
| |||||||||||
From class
java.awt.AWTEvent
| |||||||||||
From class
java.util.EventObject
| |||||||||||
From class
java.lang.Object
|
KEY_PRESSED and KEY_RELEASED events which do not map to a valid Unicode character use this for the keyChar value.
The first number in the range of ids used for key events.
The last number in the range of ids used for key events.
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). Example: the left shift key.
A constant indicating that the key event originated on the numeric keypad or with a virtual key corresponding to the numeric keypad.
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). Example: the right shift key.
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).
A constant indicating that the keyLocation is indeterminate
or not relevant.
KEY_TYPED
events do not have a keyLocation; this value
is used instead.
The "key pressed" event. This event is generated when a key is pushed down.
The "key released" event. This event is generated when a key is let up.
The "key typed" event. This event is generated when a character is entered. In the simplest case, it is produced by a single key press. Often, however, characters are produced by series of key presses, and the mapping from key pressed events to key typed events may be many-to-one or many-to-many.
VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39)
VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A)
Constant for the Accept or Commit function key.
Constant for the All Candidates function key.
Constant for the Alphanumeric function key.
Constant for the AltGraph function key.
Constant for the "@" key.
Constant for the back slash key, "\"
Constant for the Begin key.
Constant for the "^" key.
Constant for the close bracket key, "]"
Constant for the Code Input function key.
Constant for the ":" key.
Constant for the comma key, ","
Constant for the Compose function key.
Constant for the Microsoft Windows Context Menu key.
Constant for the Convert function key.
Constant for the "$" key.
Constant for the equals key, "="
Constant for the Euro currency sign key.
Constant for the "!" key.
Constant for the F1 function key.
Constant for the F10 function key.
Constant for the F11 function key.
Constant for the F12 function key.
Constant for the F13 function key.
Constant for the F14 function key.
Constant for the F15 function key.
Constant for the F16 function key.
Constant for the F17 function key.
Constant for the F18 function key.
Constant for the F19 function key.
Constant for the F2 function key.
Constant for the F20 function key.
Constant for the F21 function key.
Constant for the F22 function key.
Constant for the F23 function key.
Constant for the F24 function key.
Constant for the F3 function key.
Constant for the F4 function key.
Constant for the F5 function key.
Constant for the F6 function key.
Constant for the F7 function key.
Constant for the F8 function key.
Constant for the F9 function key.
Constant for the Full-Width Characters function key.
Constant for the Half-Width Characters function key.
Constant for the Hiragana function key.
Constant for the input method on/off key.
Constant for the inverted exclamation mark key.
Constant for the Japanese-Hiragana function key. This key switches to a Japanese input method and selects its Hiragana input mode.
Constant for the Japanese-Katakana function key. This key switches to a Japanese input method and selects its Katakana input mode.
Constant for the Japanese-Roman function key. This key switches to a Japanese input method and selects its Roman-Direct input mode.
Constant for the locking Kana function key. This key locks the keyboard into a Kana layout.
Constant for the Katakana function key.
Constant for the "(" key.
Constant for the minus key, "-"
Constant for the Don't Convert function key.
Constant for the "#" key.
Constant for the open bracket key, "["
Constant for the period key, "."
Constant for the "+" key.
Constant for the Previous Candidate function key.
Constant for the ")" key.
Constant for the Roman Characters function key.
Constant for the semicolon key, ";"
This constant is obsolete, and is included only for backwards compatibility.
Constant for the Numpad Separator key.
Constant for the forward slash key, "/"
This value is used to indicate that the keyCode is unknown. KEY_TYPED events do not have a keyCode value; this value is used instead.
Constant for the "_" key.
Constant for the Microsoft Windows "Windows" key. It is used for both the left and right version of the key.
Constructs a KeyEvent
object.
Note that passing in an invalid id
results in
unspecified behavior. This method throws an
IllegalArgumentException
if source
is null
.
source | the Component that originated the event |
---|---|
id | an integer identifying the type of event |
when | a long integer that specifies the time the event occurred |
modifiers | the modifier keys down during event (shift, ctrl, alt, meta) Either extended _DOWN_MASK or old _MASK modifiers should be used, but both models should not be mixed in one event. Use of the extended modifiers is preferred. |
keyCode | the integer code for an actual key, or VK_UNDEFINED (for a key-typed event) |
keyChar | 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) |
IllegalArgumentException | if id is
KEY_TYPED and keyChar is
CHAR_UNDEFINED ; or if id is
KEY_TYPED and keyCode is not
VK_UNDEFINED |
---|---|
IllegalArgumentException | if source is null
|
This constructor is deprecated.
as of JDK1.1
Returns the character associated with the key in this event.
For example, the KEY_TYPED
event for shift + "a"
returns the value for "A".
KEY_PRESSED
and KEY_RELEASED
events
are not intended for reporting of character input. Therefore,
the values returned by this method are guaranteed to be
meaningful only for KEY_TYPED
events.
CHAR_UNDEFINED
is returned.
Returns the integer keyCode associated with the key in this event.
KEY_TYPED
events, the keyCode is
VK_UNDEFINED
.)
Returns the location of the key that originated this key event. Some keys occur more than once on a keyboard, e.g. the left and right shift keys. Additionally, some keys occur on the numeric keypad. This provides a way of distinguishing such keys.
KEY_LOCATION_UNKNOWN
for
KEY_TYPED
events.Returns a String
describing the modifier key(s),
such as "Shift", or "Ctrl+Shift". These strings can be
localized by changing the awt.properties
file.
Note that InputEvent.ALT_MASK
and
InputEvent.BUTTON2_MASK
have the same value,
so the string "Alt" is returned for both modifiers. Likewise,
InputEvent.META_MASK
and
InputEvent.BUTTON3_MASK
have the same value,
so the string "Meta" is returned for both modifiers.
Returns a String describing the keyCode, such as "HOME", "F1" or "A". These strings can be localized by changing the awt.properties file.
Returns whether the key in this event is an "action" key. Typically an action key does not fire a unicode character and is not a modifier key.
true
if the key is an "action" key,
false
otherwise
Returns a parameter string identifying this event. This method is useful for event logging and for debugging.
Set the keyChar value to indicate a logical character.
keyChar | a char corresponding to to the combination of keystrokes that make up this event. |
---|
Set the keyCode value to indicate a physical key.
keyCode | an integer corresponding to an actual key on the keyboard. |
---|
This method is 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.
NOTE: use of this method is not recommended, because many AWT
implementations do not recognize modifier changes. This is
especially true for KEY_TYPED
events where the shift
modifier is changed.
modifiers | an integer combination of the modifier constants. |
---|