public class

KeyEvent

extends InputEvent
java.lang.Object
   ↳ java.util.EventObject
     ↳ java.awt.AWTEvent
       ↳ java.awt.event.ComponentEvent
         ↳ java.awt.event.InputEvent
           ↳ java.awt.event.KeyEvent
Known Direct Subclasses

Class Overview

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):

    KEY_PRESSED
    KEY_TYPED (is only generated if a valid Unicode character could be generated.)
    KEY_RELEASED
 
But in some cases (e.g. auto-repeat or input method is activated) the order could be different (and platform dependent).

Notes:

  • Key combinations which do not result in Unicode characters, such as action keys like F1 and the HELP key, do not generate KEY_TYPED events.
  • Not all keyboards or systems are capable of generating all virtual key codes. No attempt is made in Java to generate these keys artificially.
  • Virtual key codes do not identify a physical key: they depend on the platform and keyboard layout. For example, the key that generates VK_Q when using a U.S. keyboard layout will generate VK_A when using a French keyboard layout.
  • Not all characters have a keycode associated with them. For example, there is no keycode for the question mark because there is no keyboard for which it appears on the primary layer.
  • In order to support the platform-independent handling of action keys, the Java platform uses a few additional virtual key constants for functions that would otherwise have to be recognized by interpreting virtual key codes and modifiers. For example, for Japanese Windows keyboards, VK_ALL_CANDIDATES is returned instead of VK_CONVERT with the ALT modifier.
  • As specified in Focus Specification key events are dispatched to the focus owner by default.

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.

Summary

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
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
Constructs a KeyEvent object.
KeyEvent(Component source, int id, long when, int modifiers, int keyCode)
This constructor is deprecated. as of JDK1.1
Public Methods
char getKeyChar()
Returns the character associated with the key in this event.
int getKeyCode()
Returns the integer keyCode associated with the key in this event.
int getKeyLocation()
Returns the location of the key that originated this key event.
static String getKeyModifiersText(int modifiers)
Returns a String describing the modifier key(s), such as "Shift", or "Ctrl+Shift".
static String getKeyText(int keyCode)
Returns a String describing the keyCode, such as "HOME", "F1" or "A".
boolean isActionKey()
Returns whether the key in this event is an "action" key.
String paramString()
Returns a parameter string identifying this event.
void setKeyChar(char keyChar)
Set the keyChar value to indicate a logical character.
void setKeyCode(int keyCode)
Set the keyCode value to indicate a physical key.
void setModifiers(int modifiers)
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

Constants

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.

Constant Value: 65535 (0x0000ffff)

public static final int KEY_FIRST

The first number in the range of ids used for key events.

Constant Value: 400 (0x00000190)

public static final int KEY_LAST

The last number in the range of ids used for key events.

Constant Value: 402 (0x00000192)

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). Example: the left shift key.

Constant Value: 2 (0x00000002)

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.

Constant Value: 4 (0x00000004)

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). Example: the right shift key.

Constant Value: 3 (0x00000003)

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).

Constant Value: 1 (0x00000001)

public static final int KEY_LOCATION_UNKNOWN

A constant indicating that the keyLocation is indeterminate or not relevant. KEY_TYPED events do not have a keyLocation; this value is used instead.

Constant Value: 0 (0x00000000)

public static final int KEY_PRESSED

The "key pressed" event. This event is generated when a key is pushed down.

Constant Value: 401 (0x00000191)

public static final int KEY_RELEASED

The "key released" event. This event is generated when a key is let up.

Constant Value: 402 (0x00000192)

public static final int KEY_TYPED

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.

Constant Value: 400 (0x00000190)

public static final int VK_0

VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39)

Constant Value: 48 (0x00000030)

public static final int VK_1

Constant Value: 49 (0x00000031)

public static final int VK_2

Constant Value: 50 (0x00000032)

public static final int VK_3

Constant Value: 51 (0x00000033)

public static final int VK_4

Constant Value: 52 (0x00000034)

public static final int VK_5

Constant Value: 53 (0x00000035)

public static final int VK_6

Constant Value: 54 (0x00000036)

public static final int VK_7

Constant Value: 55 (0x00000037)

public static final int VK_8

Constant Value: 56 (0x00000038)

public static final int VK_9

Constant Value: 57 (0x00000039)

public static final int VK_A

VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A)

Constant Value: 65 (0x00000041)

public static final int VK_ACCEPT

Constant for the Accept or Commit function key.

Constant Value: 30 (0x0000001e)

public static final int VK_ADD

Constant Value: 107 (0x0000006b)

public static final int VK_AGAIN

Constant Value: 65481 (0x0000ffc9)

public static final int VK_ALL_CANDIDATES

Constant for the All Candidates function key.

Constant Value: 256 (0x00000100)

public static final int VK_ALPHANUMERIC

Constant for the Alphanumeric function key.

Constant Value: 240 (0x000000f0)

public static final int VK_ALT

Constant Value: 18 (0x00000012)

public static final int VK_ALT_GRAPH

Constant for the AltGraph function key.

Constant Value: 65406 (0x0000ff7e)

public static final int VK_AMPERSAND

Constant Value: 150 (0x00000096)

public static final int VK_ASTERISK

Constant Value: 151 (0x00000097)

public static final int VK_AT

Constant for the "@" key.

Constant Value: 512 (0x00000200)

public static final int VK_B

Constant Value: 66 (0x00000042)

public static final int VK_BACK_QUOTE

Constant Value: 192 (0x000000c0)

public static final int VK_BACK_SLASH

Constant for the back slash key, "\"

Constant Value: 92 (0x0000005c)

public static final int VK_BACK_SPACE

Constant Value: 8 (0x00000008)

public static final int VK_BEGIN

Constant for the Begin key.

Constant Value: 65368 (0x0000ff58)

public static final int VK_BRACELEFT

Constant Value: 161 (0x000000a1)

public static final int VK_BRACERIGHT

Constant Value: 162 (0x000000a2)

public static final int VK_C

Constant Value: 67 (0x00000043)

public static final int VK_CANCEL

Constant Value: 3 (0x00000003)

public static final int VK_CAPS_LOCK

Constant Value: 20 (0x00000014)

public static final int VK_CIRCUMFLEX

Constant for the "^" key.

Constant Value: 514 (0x00000202)

public static final int VK_CLEAR

Constant Value: 12 (0x0000000c)

public static final int VK_CLOSE_BRACKET

Constant for the close bracket key, "]"

Constant Value: 93 (0x0000005d)

public static final int VK_CODE_INPUT

Constant for the Code Input function key.

Constant Value: 258 (0x00000102)

public static final int VK_COLON

Constant for the ":" key.

Constant Value: 513 (0x00000201)

public static final int VK_COMMA

Constant for the comma key, ","

Constant Value: 44 (0x0000002c)

public static final int VK_COMPOSE

Constant for the Compose function key.

Constant Value: 65312 (0x0000ff20)

public static final int VK_CONTEXT_MENU

Constant for the Microsoft Windows Context Menu key.

Constant Value: 525 (0x0000020d)

public static final int VK_CONTROL

Constant Value: 17 (0x00000011)

public static final int VK_CONVERT

Constant for the Convert function key.

Constant Value: 28 (0x0000001c)

public static final int VK_COPY

Constant Value: 65485 (0x0000ffcd)

public static final int VK_CUT

Constant Value: 65489 (0x0000ffd1)

public static final int VK_D

Constant Value: 68 (0x00000044)

public static final int VK_DEAD_ABOVEDOT

Constant Value: 134 (0x00000086)

public static final int VK_DEAD_ABOVERING

Constant Value: 136 (0x00000088)

public static final int VK_DEAD_ACUTE

Constant Value: 129 (0x00000081)

public static final int VK_DEAD_BREVE

Constant Value: 133 (0x00000085)

public static final int VK_DEAD_CARON

Constant Value: 138 (0x0000008a)

public static final int VK_DEAD_CEDILLA

Constant Value: 139 (0x0000008b)

public static final int VK_DEAD_CIRCUMFLEX

Constant Value: 130 (0x00000082)

public static final int VK_DEAD_DIAERESIS

Constant Value: 135 (0x00000087)

public static final int VK_DEAD_DOUBLEACUTE

Constant Value: 137 (0x00000089)

public static final int VK_DEAD_GRAVE

Constant Value: 128 (0x00000080)

public static final int VK_DEAD_IOTA

Constant Value: 141 (0x0000008d)

public static final int VK_DEAD_MACRON

Constant Value: 132 (0x00000084)

public static final int VK_DEAD_OGONEK

Constant Value: 140 (0x0000008c)

public static final int VK_DEAD_SEMIVOICED_SOUND

Constant Value: 143 (0x0000008f)

public static final int VK_DEAD_TILDE

Constant Value: 131 (0x00000083)

public static final int VK_DEAD_VOICED_SOUND

Constant Value: 142 (0x0000008e)

public static final int VK_DECIMAL

Constant Value: 110 (0x0000006e)

public static final int VK_DELETE

Constant Value: 127 (0x0000007f)

public static final int VK_DIVIDE

Constant Value: 111 (0x0000006f)

public static final int VK_DOLLAR

Constant for the "$" key.

Constant Value: 515 (0x00000203)

public static final int VK_DOWN

Constant for the non-numpad down arrow key.

See Also
Constant Value: 40 (0x00000028)

public static final int VK_E

Constant Value: 69 (0x00000045)

public static final int VK_END

Constant Value: 35 (0x00000023)

public static final int VK_ENTER

Constant Value: 10 (0x0000000a)

public static final int VK_EQUALS

Constant for the equals key, "="

Constant Value: 61 (0x0000003d)

public static final int VK_ESCAPE

Constant Value: 27 (0x0000001b)

public static final int VK_EURO_SIGN

Constant for the Euro currency sign key.

Constant Value: 516 (0x00000204)

public static final int VK_EXCLAMATION_MARK

Constant for the "!" key.

Constant Value: 517 (0x00000205)

public static final int VK_F

Constant Value: 70 (0x00000046)

public static final int VK_F1

Constant for the F1 function key.

Constant Value: 112 (0x00000070)

public static final int VK_F10

Constant for the F10 function key.

Constant Value: 121 (0x00000079)

public static final int VK_F11

Constant for the F11 function key.

Constant Value: 122 (0x0000007a)

public static final int VK_F12

Constant for the F12 function key.

Constant Value: 123 (0x0000007b)

public static final int VK_F13

Constant for the F13 function key.

Constant Value: 61440 (0x0000f000)

public static final int VK_F14

Constant for the F14 function key.

Constant Value: 61441 (0x0000f001)

public static final int VK_F15

Constant for the F15 function key.

Constant Value: 61442 (0x0000f002)

public static final int VK_F16

Constant for the F16 function key.

Constant Value: 61443 (0x0000f003)

public static final int VK_F17

Constant for the F17 function key.

Constant Value: 61444 (0x0000f004)

public static final int VK_F18

Constant for the F18 function key.

Constant Value: 61445 (0x0000f005)

public static final int VK_F19

Constant for the F19 function key.

Constant Value: 61446 (0x0000f006)

public static final int VK_F2

Constant for the F2 function key.

Constant Value: 113 (0x00000071)

public static final int VK_F20

Constant for the F20 function key.

Constant Value: 61447 (0x0000f007)

public static final int VK_F21

Constant for the F21 function key.

Constant Value: 61448 (0x0000f008)

public static final int VK_F22

Constant for the F22 function key.

Constant Value: 61449 (0x0000f009)

public static final int VK_F23

Constant for the F23 function key.

Constant Value: 61450 (0x0000f00a)

public static final int VK_F24

Constant for the F24 function key.

Constant Value: 61451 (0x0000f00b)

public static final int VK_F3

Constant for the F3 function key.

Constant Value: 114 (0x00000072)

public static final int VK_F4

Constant for the F4 function key.

Constant Value: 115 (0x00000073)

public static final int VK_F5

Constant for the F5 function key.

Constant Value: 116 (0x00000074)

public static final int VK_F6

Constant for the F6 function key.

Constant Value: 117 (0x00000075)

public static final int VK_F7

Constant for the F7 function key.

Constant Value: 118 (0x00000076)

public static final int VK_F8

Constant for the F8 function key.

Constant Value: 119 (0x00000077)

public static final int VK_F9

Constant for the F9 function key.

Constant Value: 120 (0x00000078)

public static final int VK_FINAL

Constant Value: 24 (0x00000018)

public static final int VK_FIND

Constant Value: 65488 (0x0000ffd0)

public static final int VK_FULL_WIDTH

Constant for the Full-Width Characters function key.

Constant Value: 243 (0x000000f3)

public static final int VK_G

Constant Value: 71 (0x00000047)

public static final int VK_GREATER

Constant Value: 160 (0x000000a0)

public static final int VK_H

Constant Value: 72 (0x00000048)

public static final int VK_HALF_WIDTH

Constant for the Half-Width Characters function key.

Constant Value: 244 (0x000000f4)

public static final int VK_HELP

Constant Value: 156 (0x0000009c)

public static final int VK_HIRAGANA

Constant for the Hiragana function key.

Constant Value: 242 (0x000000f2)

public static final int VK_HOME

Constant Value: 36 (0x00000024)

public static final int VK_I

Constant Value: 73 (0x00000049)

public static final int VK_INPUT_METHOD_ON_OFF

Constant for the input method on/off key.

Constant Value: 263 (0x00000107)

public static final int VK_INSERT

Constant Value: 155 (0x0000009b)

public static final int VK_INVERTED_EXCLAMATION_MARK

Constant for the inverted exclamation mark key.

Constant Value: 518 (0x00000206)

public static final int VK_J

Constant Value: 74 (0x0000004a)

public static final int VK_JAPANESE_HIRAGANA

Constant for the Japanese-Hiragana function key. This key switches to a Japanese input method and selects its Hiragana input mode.

Constant Value: 260 (0x00000104)

public static final int VK_JAPANESE_KATAKANA

Constant for the Japanese-Katakana function key. This key switches to a Japanese input method and selects its Katakana input mode.

Constant Value: 259 (0x00000103)

public static final int VK_JAPANESE_ROMAN

Constant for the Japanese-Roman function key. This key switches to a Japanese input method and selects its Roman-Direct input mode.

Constant Value: 261 (0x00000105)

public static final int VK_K

Constant Value: 75 (0x0000004b)

public static final int VK_KANA

Constant Value: 21 (0x00000015)

public static final int VK_KANA_LOCK

Constant for the locking Kana function key. This key locks the keyboard into a Kana layout.

Constant Value: 262 (0x00000106)

public static final int VK_KANJI

Constant Value: 25 (0x00000019)

public static final int VK_KATAKANA

Constant for the Katakana function key.

Constant Value: 241 (0x000000f1)

public static final int VK_KP_DOWN

Constant for the numeric keypad down arrow key.

See Also
Constant Value: 225 (0x000000e1)

public static final int VK_KP_LEFT

Constant for the numeric keypad left arrow key.

See Also
Constant Value: 226 (0x000000e2)

public static final int VK_KP_RIGHT

Constant for the numeric keypad right arrow key.

See Also
Constant Value: 227 (0x000000e3)

public static final int VK_KP_UP

Constant for the numeric keypad up arrow key.

See Also
Constant Value: 224 (0x000000e0)

public static final int VK_L

Constant Value: 76 (0x0000004c)

public static final int VK_LEFT

Constant for the non-numpad left arrow key.

See Also
Constant Value: 37 (0x00000025)

public static final int VK_LEFT_PARENTHESIS

Constant for the "(" key.

Constant Value: 519 (0x00000207)

public static final int VK_LESS

Constant Value: 153 (0x00000099)

public static final int VK_M

Constant Value: 77 (0x0000004d)

public static final int VK_META

Constant Value: 157 (0x0000009d)

public static final int VK_MINUS

Constant for the minus key, "-"

Constant Value: 45 (0x0000002d)

public static final int VK_MODECHANGE

Constant Value: 31 (0x0000001f)

public static final int VK_MULTIPLY

Constant Value: 106 (0x0000006a)

public static final int VK_N

Constant Value: 78 (0x0000004e)

public static final int VK_NONCONVERT

Constant for the Don't Convert function key.

Constant Value: 29 (0x0000001d)

public static final int VK_NUMBER_SIGN

Constant for the "#" key.

Constant Value: 520 (0x00000208)

public static final int VK_NUMPAD0

Constant Value: 96 (0x00000060)

public static final int VK_NUMPAD1

Constant Value: 97 (0x00000061)

public static final int VK_NUMPAD2

Constant Value: 98 (0x00000062)

public static final int VK_NUMPAD3

Constant Value: 99 (0x00000063)

public static final int VK_NUMPAD4

Constant Value: 100 (0x00000064)

public static final int VK_NUMPAD5

Constant Value: 101 (0x00000065)

public static final int VK_NUMPAD6

Constant Value: 102 (0x00000066)

public static final int VK_NUMPAD7

Constant Value: 103 (0x00000067)

public static final int VK_NUMPAD8

Constant Value: 104 (0x00000068)

public static final int VK_NUMPAD9

Constant Value: 105 (0x00000069)

public static final int VK_NUM_LOCK

Constant Value: 144 (0x00000090)

public static final int VK_O

Constant Value: 79 (0x0000004f)

public static final int VK_OPEN_BRACKET

Constant for the open bracket key, "["

Constant Value: 91 (0x0000005b)

public static final int VK_P

Constant Value: 80 (0x00000050)

public static final int VK_PAGE_DOWN

Constant Value: 34 (0x00000022)

public static final int VK_PAGE_UP

Constant Value: 33 (0x00000021)

public static final int VK_PASTE

Constant Value: 65487 (0x0000ffcf)

public static final int VK_PAUSE

Constant Value: 19 (0x00000013)

public static final int VK_PERIOD

Constant for the period key, "."

Constant Value: 46 (0x0000002e)

public static final int VK_PLUS

Constant for the "+" key.

Constant Value: 521 (0x00000209)

public static final int VK_PREVIOUS_CANDIDATE

Constant for the Previous Candidate function key.

Constant Value: 257 (0x00000101)

public static final int VK_PRINTSCREEN

Constant Value: 154 (0x0000009a)

public static final int VK_PROPS

Constant Value: 65482 (0x0000ffca)

public static final int VK_Q

Constant Value: 81 (0x00000051)

public static final int VK_QUOTE

Constant Value: 222 (0x000000de)

public static final int VK_QUOTEDBL

Constant Value: 152 (0x00000098)

public static final int VK_R

Constant Value: 82 (0x00000052)

public static final int VK_RIGHT

Constant for the non-numpad right arrow key.

See Also
Constant Value: 39 (0x00000027)

public static final int VK_RIGHT_PARENTHESIS

Constant for the ")" key.

Constant Value: 522 (0x0000020a)

public static final int VK_ROMAN_CHARACTERS

Constant for the Roman Characters function key.

Constant Value: 245 (0x000000f5)

public static final int VK_S

Constant Value: 83 (0x00000053)

public static final int VK_SCROLL_LOCK

Constant Value: 145 (0x00000091)

public static final int VK_SEMICOLON

Constant for the semicolon key, ";"

Constant Value: 59 (0x0000003b)

public static final int VK_SEPARATER

This constant is obsolete, and is included only for backwards compatibility.

See Also
Constant Value: 108 (0x0000006c)

public static final int VK_SEPARATOR

Constant for the Numpad Separator key.

Constant Value: 108 (0x0000006c)

public static final int VK_SHIFT

Constant Value: 16 (0x00000010)

public static final int VK_SLASH

Constant for the forward slash key, "/"

Constant Value: 47 (0x0000002f)

public static final int VK_SPACE

Constant Value: 32 (0x00000020)

public static final int VK_STOP

Constant Value: 65480 (0x0000ffc8)

public static final int VK_SUBTRACT

Constant Value: 109 (0x0000006d)

public static final int VK_T

Constant Value: 84 (0x00000054)

public static final int VK_TAB

Constant Value: 9 (0x00000009)

public static final int VK_U

Constant Value: 85 (0x00000055)

public static final int VK_UNDEFINED

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 Value: 0 (0x00000000)

public static final int VK_UNDERSCORE

Constant for the "_" key.

Constant Value: 523 (0x0000020b)

public static final int VK_UNDO

Constant Value: 65483 (0x0000ffcb)

public static final int VK_UP

Constant for the non-numpad up arrow key.

See Also
Constant Value: 38 (0x00000026)

public static final int VK_V

Constant Value: 86 (0x00000056)

public static final int VK_W

Constant Value: 87 (0x00000057)

public static final int VK_WINDOWS

Constant for the Microsoft Windows "Windows" key. It is used for both the left and right version of the key.

See Also
Constant Value: 524 (0x0000020c)

public static final int VK_X

Constant Value: 88 (0x00000058)

public static final int VK_Y

Constant Value: 89 (0x00000059)

public static final int VK_Z

Constant Value: 90 (0x0000005a)

Public Constructors

public KeyEvent (Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)

public KeyEvent (Component source, int id, long when, int modifiers, int keyCode, char keyChar)

Constructs a KeyEvent object.

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

Parameters
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)
Throws
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

public KeyEvent (Component source, int id, long when, int modifiers, int keyCode)

This constructor is deprecated.
as of JDK1.1

Public Methods

public char getKeyChar ()

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.

Returns
  • the Unicode character defined for this key event. If no valid Unicode character exists for this key event, CHAR_UNDEFINED is returned.

public int getKeyCode ()

Returns the integer keyCode associated with the key in this event.

Returns
  • the integer code for an actual key on the keyboard. (For KEY_TYPED events, the keyCode is VK_UNDEFINED.)

public int getKeyLocation ()

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.

Returns
  • the location of the key that was pressed or released. Always returns KEY_LOCATION_UNKNOWN for KEY_TYPED events.

public static String getKeyModifiersText (int modifiers)

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
  • string a text description of the combination of modifier keys that were held down during the event

public static String getKeyText (int keyCode)

Returns a String describing the keyCode, such as "HOME", "F1" or "A". These strings can be localized by changing the awt.properties file.

Returns
  • a string containing a text description for a physical key, identified by its keyCode

public boolean isActionKey ()

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.

Returns
  • true if the key is an "action" key, false otherwise

public String paramString ()

Returns a parameter string identifying this event. This method is useful for event logging and for debugging.

Returns
  • a string identifying the event and its attributes

public void setKeyChar (char keyChar)

Set the keyChar value to indicate a logical character.

Parameters
keyChar a char corresponding to to the combination of keystrokes that make up this event.

public void setKeyCode (int keyCode)

Set the keyCode value to indicate a physical key.

Parameters
keyCode an integer corresponding to an actual key on the keyboard.

public void setModifiers (int modifiers)

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.

Parameters
modifiers an integer combination of the modifier constants.
See Also