Module java.desktop

Class KeyEvent

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
MenuKeyEvent

public class KeyEvent extends InputEvent
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. 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):

    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.
  • The key that generates 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.
  • 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. 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.

Since:
1.1
See Also:
  • Field Details

    • KEY_FIRST

      public static final int KEY_FIRST
      The first number in the range of ids used for key events.
      See Also:
    • KEY_LAST

      public static final int KEY_LAST
      The last number in the range of ids used for key events.
      See Also:
    • KEY_TYPED

      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.
      See Also:
    • KEY_PRESSED

      public static final int KEY_PRESSED
      The "key pressed" event. This event is generated when a key is pushed down.
      See Also:
    • KEY_RELEASED

      public static final int KEY_RELEASED
      The "key released" event. This event is generated when a key is let up.
      See Also:
    • VK_ENTER

      public static final int VK_ENTER
      Constant for the ENTER virtual key.
      See Also:
    • VK_BACK_SPACE

      public static final int VK_BACK_SPACE
      Constant for the BACK_SPACE virtual key.
      See Also:
    • VK_TAB

      public static final int VK_TAB
      Constant for the TAB virtual key.
      See Also:
    • VK_CANCEL

      public static final int VK_CANCEL
      Constant for the CANCEL virtual key.
      See Also:
    • VK_CLEAR

      public static final int VK_CLEAR
      Constant for the CLEAR virtual key.
      See Also:
    • VK_SHIFT

      public static final int VK_SHIFT
      Constant for the SHIFT virtual key.
      See Also:
    • VK_CONTROL

      public static final int VK_CONTROL
      Constant for the CONTROL virtual key.
      See Also:
    • VK_ALT

      public static final int VK_ALT
      Constant for the ALT virtual key.
      See Also:
    • VK_PAUSE

      public static final int VK_PAUSE
      Constant for the PAUSE virtual key.
      See Also:
    • VK_CAPS_LOCK

      public static final int VK_CAPS_LOCK
      Constant for the CAPS_LOCK virtual key.
      See Also:
    • VK_ESCAPE

      public static final int VK_ESCAPE
      Constant for the ESCAPE virtual key.
      See Also:
    • VK_SPACE

      public static final int VK_SPACE
      Constant for the SPACE virtual key.
      See Also:
    • VK_PAGE_UP

      public static final int VK_PAGE_UP
      Constant for the PAGE_UP virtual key.
      See Also:
    • VK_PAGE_DOWN

      public static final int VK_PAGE_DOWN
      Constant for the PAGE_DOWN virtual key.
      See Also:
    • VK_END

      public static final int VK_END
      Constant for the END virtual key.
      See Also:
    • VK_HOME

      public static final int VK_HOME
      Constant for the HOME virtual key.
      See Also:
    • VK_LEFT

      public static final int VK_LEFT
      Constant for the non-numpad left arrow key.
      See Also:
    • VK_UP

      public static final int VK_UP
      Constant for the non-numpad up arrow key.
      See Also:
    • VK_RIGHT

      public static final int VK_RIGHT
      Constant for the non-numpad right arrow key.
      See Also:
    • VK_DOWN

      public static final int VK_DOWN
      Constant for the non-numpad down arrow key.
      See Also:
    • VK_COMMA

      public static final int VK_COMMA
      Constant for the comma key, ","
      See Also:
    • VK_MINUS

      public static final int VK_MINUS
      Constant for the minus key, "-"
      Since:
      1.2
      See Also:
    • VK_PERIOD

      public static final int VK_PERIOD
      Constant for the period key, "."
      See Also:
    • VK_SLASH

      public static final int VK_SLASH
      Constant for the forward slash key, "/"
      See Also:
    • VK_0

      public static final int VK_0
      Constant for the "0" key.
      See Also:
    • VK_1

      public static final int VK_1
      Constant for the "1" key.
      See Also:
    • VK_2

      public static final int VK_2
      Constant for the "2" key.
      See Also:
    • VK_3

      public static final int VK_3
      Constant for the "3" key.
      See Also:
    • VK_4

      public static final int VK_4
      Constant for the "4" key.
      See Also:
    • VK_5

      public static final int VK_5
      Constant for the "5" key.
      See Also:
    • VK_6

      public static final int VK_6
      Constant for the "6" key.
      See Also:
    • VK_7

      public static final int VK_7
      Constant for the "7" key.
      See Also:
    • VK_8

      public static final int VK_8
      Constant for the "8" key.
      See Also:
    • VK_9

      public static final int VK_9
      Constant for the "9" key.
      See Also:
    • VK_SEMICOLON

      public static final int VK_SEMICOLON
      Constant for the semicolon key, ";"
      See Also:
    • VK_EQUALS

      public static final int VK_EQUALS
      Constant for the equals key, "="
      See Also:
    • VK_A

      public static final int VK_A
      Constant for the "A" key.
      See Also:
    • VK_B

      public static final int VK_B
      Constant for the "B" key.
      See Also:
    • VK_C

      public static final int VK_C
      Constant for the "C" key.
      See Also:
    • VK_D

      public static final int VK_D
      Constant for the "D" key.
      See Also:
    • VK_E

      public static final int VK_E
      Constant for the "E" key.
      See Also:
    • VK_F

      public static final int VK_F
      Constant for the "F" key.
      See Also:
    • VK_G

      public static final int VK_G
      Constant for the "G" key.
      See Also:
    • VK_H

      public static final int VK_H
      Constant for the "H" key.
      See Also:
    • VK_I

      public static final int VK_I
      Constant for the "I" key.
      See Also:
    • VK_J

      public static final int VK_J
      Constant for the "J" key.
      See Also:
    • VK_K

      public static final int VK_K
      Constant for the "K" key.
      See Also:
    • VK_L

      public static final int VK_L
      Constant for the "L" key.
      See Also:
    • VK_M

      public static final int VK_M
      Constant for the "M" key.
      See Also:
    • VK_N

      public static final int VK_N
      Constant for the "N" key.
      See Also:
    • VK_O

      public static final int VK_O
      Constant for the "O" key.
      See Also:
    • VK_P

      public static final int VK_P
      Constant for the "P" key.
      See Also:
    • VK_Q

      public static final int VK_Q
      Constant for the "Q" key.
      See Also:
    • VK_R

      public static final int VK_R
      Constant for the "R" key.
      See Also:
    • VK_S

      public static final int VK_S
      Constant for the "S" key.
      See Also:
    • VK_T

      public static final int VK_T
      Constant for the "T" key.
      See Also:
    • VK_U

      public static final int VK_U
      Constant for the "U" key.
      See Also:
    • VK_V

      public static final int VK_V
      Constant for the "V" key.
      See Also:
    • VK_W

      public static final int VK_W
      Constant for the "W" key.
      See Also:
    • VK_X

      public static final int VK_X
      Constant for the "X" key.
      See Also:
    • VK_Y

      public static final int VK_Y
      Constant for the "Y" key.
      See Also:
    • VK_Z

      public static final int VK_Z
      Constant for the "Z" key.
      See Also:
    • VK_OPEN_BRACKET

      public static final int VK_OPEN_BRACKET
      Constant for the open bracket key, "["
      See Also:
    • VK_BACK_SLASH

      public static final int VK_BACK_SLASH
      Constant for the back slash key, "\"
      See Also:
    • VK_CLOSE_BRACKET

      public static final int VK_CLOSE_BRACKET
      Constant for the close bracket key, "]"
      See Also:
    • VK_NUMPAD0

      public static final int VK_NUMPAD0
      Constant for the number pad "0" key.
      See Also:
    • VK_NUMPAD1

      public static final int VK_NUMPAD1
      Constant for the number pad "1" key.
      See Also:
    • VK_NUMPAD2

      public static final int VK_NUMPAD2
      Constant for the number pad "2" key.
      See Also:
    • VK_NUMPAD3

      public static final int VK_NUMPAD3
      Constant for the number pad "3" key.
      See Also:
    • VK_NUMPAD4

      public static final int VK_NUMPAD4
      Constant for the number pad "4" key.
      See Also:
    • VK_NUMPAD5

      public static final int VK_NUMPAD5
      Constant for the number pad "5" key.
      See Also:
    • VK_NUMPAD6

      public static final int VK_NUMPAD6
      Constant for the number pad "6" key.
      See Also:
    • VK_NUMPAD7

      public static final int VK_NUMPAD7
      Constant for the number pad "7" key.
      See Also:
    • VK_NUMPAD8

      public static final int VK_NUMPAD8
      Constant for the number pad "8" key.
      See Also:
    • VK_NUMPAD9

      public static final int VK_NUMPAD9
      Constant for the number pad "9" key.
      See Also:
    • VK_MULTIPLY

      public static final int VK_MULTIPLY
      Constant for the number pad multiply key.
      See Also:
    • VK_ADD

      public static final int VK_ADD
      Constant for the number pad add key.
      See Also:
    • VK_SEPARATER

      public static final int VK_SEPARATER
      This constant is obsolete, and is included only for backwards compatibility.
      See Also:
    • VK_SEPARATOR

      public static final int VK_SEPARATOR
      Constant for the Numpad Separator key.
      Since:
      1.4
      See Also:
    • VK_SUBTRACT

      public static final int VK_SUBTRACT
      Constant for the number pad subtract key.
      See Also:
    • VK_DECIMAL

      public static final int VK_DECIMAL
      Constant for the number pad decimal point key.
      See Also:
    • VK_DIVIDE

      public static final int VK_DIVIDE
      Constant for the number pad divide key.
      See Also:
    • VK_DELETE

      public static final int VK_DELETE
      Constant for the delete key.
      See Also:
    • VK_NUM_LOCK

      public static final int VK_NUM_LOCK
      Constant for the NUM_LOCK key.
      See Also:
    • VK_SCROLL_LOCK

      public static final int VK_SCROLL_LOCK
      Constant for the SCROLL_LOCK key.
      See Also:
    • VK_F1

      public static final int VK_F1
      Constant for the F1 function key.
      See Also:
    • VK_F2

      public static final int VK_F2
      Constant for the F2 function key.
      See Also:
    • VK_F3

      public static final int VK_F3
      Constant for the F3 function key.
      See Also:
    • VK_F4

      public static final int VK_F4
      Constant for the F4 function key.
      See Also:
    • VK_F5

      public static final int VK_F5
      Constant for the F5 function key.
      See Also:
    • VK_F6

      public static final int VK_F6
      Constant for the F6 function key.
      See Also:
    • VK_F7

      public static final int VK_F7
      Constant for the F7 function key.
      See Also:
    • VK_F8

      public static final int VK_F8
      Constant for the F8 function key.
      See Also:
    • VK_F9

      public static final int VK_F9
      Constant for the F9 function key.
      See Also:
    • VK_F10

      public static final int VK_F10
      Constant for the F10 function key.
      See Also:
    • VK_F11

      public static final int VK_F11
      Constant for the F11 function key.
      See Also:
    • VK_F12

      public static final int VK_F12
      Constant for the F12 function key.
      See Also:
    • VK_F13

      public static final int VK_F13
      Constant for the F13 function key.
      Since:
      1.2
      See Also:
    • VK_F14

      public static final int VK_F14
      Constant for the F14 function key.
      Since:
      1.2
      See Also:
    • VK_F15

      public static final int VK_F15
      Constant for the F15 function key.
      Since:
      1.2
      See Also:
    • VK_F16

      public static final int VK_F16
      Constant for the F16 function key.
      Since:
      1.2
      See Also:
    • VK_F17

      public static final int VK_F17
      Constant for the F17 function key.
      Since:
      1.2
      See Also:
    • VK_F18

      public static final int VK_F18
      Constant for the F18 function key.
      Since:
      1.2
      See Also:
    • VK_F19

      public static final int VK_F19
      Constant for the F19 function key.
      Since:
      1.2
      See Also:
    • VK_F20

      public static final int VK_F20
      Constant for the F20 function key.
      Since:
      1.2
      See Also:
    • VK_F21

      public static final int VK_F21
      Constant for the F21 function key.
      Since:
      1.2
      See Also:
    • VK_F22

      public static final int VK_F22
      Constant for the F22 function key.
      Since:
      1.2
      See Also:
    • VK_F23

      public static final int VK_F23
      Constant for the F23 function key.
      Since:
      1.2
      See Also:
    • VK_F24

      public static final int VK_F24
      Constant for the F24 function key.
      Since:
      1.2
      See Also:
    • VK_PRINTSCREEN

      public static final int VK_PRINTSCREEN
      Constant for the PRINTSCREEN key.
      See Also:
    • VK_INSERT

      public static final int VK_INSERT
      Constant for the INSERT key.
      See Also:
    • VK_HELP

      public static final int VK_HELP
      Constant for the HELP key.
      See Also:
    • VK_META

      public static final int VK_META
      Constant for the META key.
      See Also:
    • VK_BACK_QUOTE

      public static final int VK_BACK_QUOTE
      Constant for the BACK_QUOTE key.
      See Also:
    • VK_QUOTE

      public static final int VK_QUOTE
      Constant for the QUOTE key.
      See Also:
    • VK_KP_UP

      public static final int VK_KP_UP
      Constant for the numeric keypad up arrow key.
      Since:
      1.2
      See Also:
    • VK_KP_DOWN

      public static final int VK_KP_DOWN
      Constant for the numeric keypad down arrow key.
      Since:
      1.2
      See Also:
    • VK_KP_LEFT

      public static final int VK_KP_LEFT
      Constant for the numeric keypad left arrow key.
      Since:
      1.2
      See Also:
    • VK_KP_RIGHT

      public static final int VK_KP_RIGHT
      Constant for the numeric keypad right arrow key.
      Since:
      1.2
      See Also:
    • VK_DEAD_GRAVE

      public static final int VK_DEAD_GRAVE
      Since:
      1.2
      See Also:
    • VK_DEAD_ACUTE

      public static final int VK_DEAD_ACUTE
      Since:
      1.2
      See Also:
    • VK_DEAD_CIRCUMFLEX

      public static final int VK_DEAD_CIRCUMFLEX
      Since:
      1.2
      See Also:
    • VK_DEAD_TILDE

      public static final int VK_DEAD_TILDE
      Since:
      1.2
      See Also:
    • VK_DEAD_MACRON

      public static final int VK_DEAD_MACRON
      Since:
      1.2
      See Also:
    • VK_DEAD_BREVE

      public static final int VK_DEAD_BREVE
      Since:
      1.2
      See Also:
    • VK_DEAD_ABOVEDOT

      public static final int VK_DEAD_ABOVEDOT
      Since:
      1.2
      See Also:
    • VK_DEAD_DIAERESIS

      public static final int VK_DEAD_DIAERESIS
      Since:
      1.2
      See Also:
    • VK_DEAD_ABOVERING

      public static final int VK_DEAD_ABOVERING
      Since:
      1.2
      See Also:
    • VK_DEAD_DOUBLEACUTE

      public static final int VK_DEAD_DOUBLEACUTE
      Since:
      1.2
      See Also:
    • VK_DEAD_CARON

      public static final int VK_DEAD_CARON
      Since:
      1.2
      See Also:
    • VK_DEAD_CEDILLA

      public static final int VK_DEAD_CEDILLA
      Since:
      1.2
      See Also:
    • VK_DEAD_OGONEK

      public static final int VK_DEAD_OGONEK
      Since:
      1.2
      See Also:
    • VK_DEAD_IOTA

      public static final int VK_DEAD_IOTA
      Since:
      1.2
      See Also:
    • VK_DEAD_VOICED_SOUND

      public static final int VK_DEAD_VOICED_SOUND
      Since:
      1.2
      See Also:
    • VK_DEAD_SEMIVOICED_SOUND

      public static final int VK_DEAD_SEMIVOICED_SOUND
      Since:
      1.2
      See Also:
    • VK_AMPERSAND

      public static final int VK_AMPERSAND
      Since:
      1.2
      See Also:
    • VK_ASTERISK

      public static final int VK_ASTERISK
      Since:
      1.2
      See Also:
    • VK_QUOTEDBL

      public static final int VK_QUOTEDBL
      Since:
      1.2
      See Also:
    • VK_LESS

      public static final int VK_LESS
      Since:
      1.2
      See Also:
    • VK_GREATER

      public static final int VK_GREATER
      Since:
      1.2
      See Also:
    • VK_BRACELEFT

      public static final int VK_BRACELEFT
      Since:
      1.2
      See Also:
    • VK_BRACERIGHT

      public static final int VK_BRACERIGHT
      Since:
      1.2
      See Also:
    • VK_AT

      public static final int VK_AT
      Constant for the "@" key.
      Since:
      1.2
      See Also:
    • VK_COLON

      public static final int VK_COLON
      Constant for the ":" key.
      Since:
      1.2
      See Also:
    • VK_CIRCUMFLEX

      public static final int VK_CIRCUMFLEX
      Constant for the "^" key.
      Since:
      1.2
      See Also:
    • VK_DOLLAR

      public static final int VK_DOLLAR
      Constant for the "$" key.
      Since:
      1.2
      See Also:
    • VK_EURO_SIGN

      public static final int VK_EURO_SIGN
      Constant for the Euro currency sign key.
      Since:
      1.2
      See Also:
    • VK_EXCLAMATION_MARK

      public static final int VK_EXCLAMATION_MARK
      Constant for the "!" key.
      Since:
      1.2
      See Also:
    • VK_INVERTED_EXCLAMATION_MARK

      public static final int VK_INVERTED_EXCLAMATION_MARK
      Constant for the inverted exclamation mark key.
      Since:
      1.2
      See Also:
    • VK_LEFT_PARENTHESIS

      public static final int VK_LEFT_PARENTHESIS
      Constant for the "(" key.
      Since:
      1.2
      See Also:
    • VK_NUMBER_SIGN

      public static final int VK_NUMBER_SIGN
      Constant for the "#" key.
      Since:
      1.2
      See Also:
    • VK_PLUS

      public static final int VK_PLUS
      Constant for the "+" key.
      Since:
      1.2
      See Also:
    • VK_RIGHT_PARENTHESIS

      public static final int VK_RIGHT_PARENTHESIS
      Constant for the ")" key.
      Since:
      1.2
      See Also:
    • VK_UNDERSCORE

      public static final int VK_UNDERSCORE
      Constant for the "_" key.
      Since:
      1.2
      See Also:
    • VK_WINDOWS

      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.
      Since:
      1.5
      See Also:
    • VK_CONTEXT_MENU

      public static final int VK_CONTEXT_MENU
      Constant for the Microsoft Windows Context Menu key.
      Since:
      1.5
      See Also:
    • VK_FINAL

      public static final int VK_FINAL
      Constant for the FINAL key.
      See Also:
    • VK_CONVERT

      public static final int VK_CONVERT
      Constant for the Convert function key.
      See Also:
    • VK_NONCONVERT

      public static final int VK_NONCONVERT
      Constant for the Don't Convert function key.
      See Also:
    • VK_ACCEPT

      public static final int VK_ACCEPT
      Constant for the Accept or Commit function key.
      See Also:
    • VK_MODECHANGE

      public static final int VK_MODECHANGE
      Constant for the MODECHANGE key.
      See Also:
    • VK_KANA

      public static final int VK_KANA
      Constant for the KANA lock key.
      See Also:
    • VK_KANJI

      public static final int VK_KANJI
      Constant for KANJI.
      See Also:
    • VK_ALPHANUMERIC

      public static final int VK_ALPHANUMERIC
      Constant for the Alphanumeric function key.
      Since:
      1.2
      See Also:
    • VK_KATAKANA

      public static final int VK_KATAKANA
      Constant for the Katakana function key.
      Since:
      1.2
      See Also:
    • VK_HIRAGANA

      public static final int VK_HIRAGANA
      Constant for the Hiragana function key.
      Since:
      1.2
      See Also:
    • VK_FULL_WIDTH

      public static final int VK_FULL_WIDTH
      Constant for the Full-Width Characters function key.
      Since:
      1.2
      See Also:
    • VK_HALF_WIDTH

      public static final int VK_HALF_WIDTH
      Constant for the Half-Width Characters function key.
      Since:
      1.2
      See Also:
    • VK_ROMAN_CHARACTERS

      public static final int VK_ROMAN_CHARACTERS
      Constant for the Roman Characters function key.
      Since:
      1.2
      See Also:
    • VK_ALL_CANDIDATES

      public static final int VK_ALL_CANDIDATES
      Constant for the All Candidates function key.
      Since:
      1.2
      See Also:
    • VK_PREVIOUS_CANDIDATE

      public static final int VK_PREVIOUS_CANDIDATE
      Constant for the Previous Candidate function key.
      Since:
      1.2
      See Also:
    • VK_CODE_INPUT

      public static final int VK_CODE_INPUT
      Constant for the Code Input function key.
      Since:
      1.2
      See Also:
    • VK_JAPANESE_KATAKANA

      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.
      Since:
      1.2
      See Also:
    • VK_JAPANESE_HIRAGANA

      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.
      Since:
      1.2
      See Also:
    • VK_JAPANESE_ROMAN

      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.
      Since:
      1.2
      See Also:
    • VK_KANA_LOCK

      public static final int VK_KANA_LOCK
      Constant for the locking Kana function key. This key locks the keyboard into a Kana layout.
      Since:
      1.3
      See Also:
    • VK_INPUT_METHOD_ON_OFF

      public static final int VK_INPUT_METHOD_ON_OFF
      Constant for the input method on/off key.
      Since:
      1.3
      See Also:
    • VK_CUT

      public static final int VK_CUT
      Since:
      1.2
      See Also:
    • VK_COPY

      public static final int VK_COPY
      Since:
      1.2
      See Also:
    • VK_PASTE

      public static final int VK_PASTE
      Since:
      1.2
      See Also:
    • VK_UNDO

      public static final int VK_UNDO
      Since:
      1.2
      See Also:
    • VK_AGAIN

      public static final int VK_AGAIN
      Since:
      1.2
      See Also:
    • VK_FIND

      public static final int VK_FIND
      Since:
      1.2
      See Also:
    • VK_PROPS

      public static final int VK_PROPS
      Since:
      1.2
      See Also:
    • VK_STOP

      public static final int VK_STOP
      Since:
      1.2
      See Also:
    • VK_COMPOSE

      public static final int VK_COMPOSE
      Constant for the Compose function key.
      Since:
      1.2
      See Also:
    • VK_ALT_GRAPH

      public static final int VK_ALT_GRAPH
      Constant for the AltGraph function key.
      Since:
      1.2
      See Also:
    • VK_BEGIN

      public static final int VK_BEGIN
      Constant for the Begin key.
      Since:
      1.5
      See Also:
    • VK_UNDEFINED

      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.
      See Also:
    • CHAR_UNDEFINED

      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.
      See Also:
    • KEY_LOCATION_UNKNOWN

      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.
      Since:
      1.4
      See Also:
    • KEY_LOCATION_STANDARD

      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).
      Since:
      1.4
      See Also:
    • KEY_LOCATION_LEFT

      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.
      Since:
      1.4
      See Also:
    • KEY_LOCATION_RIGHT

      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.
      Since:
      1.4
      See Also:
    • KEY_LOCATION_NUMPAD

      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.
      Since:
      1.4
      See Also:
  • Constructor Details

    • KeyEvent

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

      This method throws an IllegalArgumentException if source is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for KeyEvent
      when - A long integer that specifies the time the event occurred. Passing negative or zero value is not recommended
      modifiers - 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
      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)
      keyLocation - Identifies the key location. The only legal values are KEY_LOCATION_UNKNOWN, KEY_LOCATION_STANDARD, KEY_LOCATION_LEFT, KEY_LOCATION_RIGHT, and KEY_LOCATION_NUMPAD.
      Throws:
      IllegalArgumentException - if id is KEY_TYPED and keyChar is CHAR_UNDEFINED; or if id is KEY_TYPED and keyCode is not VK_UNDEFINED; or if id is KEY_TYPED and keyLocation is not KEY_LOCATION_UNKNOWN; or if keyLocation is not one of the legal values enumerated above.
      IllegalArgumentException - if source is null
      Since:
      1.4
      See Also:
    • KeyEvent

      public KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
      Constructs a KeyEvent object.

      This method throws an IllegalArgumentException if source is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for KeyEvent
      when - A long integer that specifies the time the event occurred. Passing negative or zero value is not recommended
      modifiers - 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
      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
      See Also:
    • KeyEvent

      @Deprecated public KeyEvent(Component source, int id, long when, int modifiers, int keyCode)
      Deprecated.
      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for KeyEvent
      when - A long integer that specifies the time the event occurred. Passing negative or zero value is not recommended
      modifiers - 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
      keyCode - The integer code for an actual key, or VK_UNDEFINED (for a key-typed event)
  • Method Details

    • getKeyCode

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

      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.
    • getKeyChar

      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.
    • setKeyChar

      public void setKeyChar(char keyChar)
      Set the keyChar value to indicate a logical character.
      Parameters:
      keyChar - a char corresponding to the combination of keystrokes that make up this event.
    • setModifiers

      @Deprecated public void setModifiers(int 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.

      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:
    • getKeyLocation

      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.
      Since:
      1.4
    • getKeyText

      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.
      Parameters:
      keyCode - the key whose description is to be returned
      Returns:
      a string containing a text description for a physical key, identified by its keyCode
    • getKeyModifiersText

      @Deprecated(since="9") public static String getKeyModifiersText(int modifiers)
      Deprecated.
      It is recommended that extended modifier keys and InputEvent.getModifiersExText(int) be used instead
      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.

      Parameters:
      modifiers - the modifier mask to be processed
      Returns:
      string a text description of the combination of modifier keys that were held down during the event
      See Also:
    • isActionKey

      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
    • paramString

      public String paramString()
      Returns a parameter string identifying this event. This method is useful for event logging and for debugging.
      Overrides:
      paramString in class ComponentEvent
      Returns:
      a string identifying the event and its attributes
    • getExtendedKeyCode

      public int getExtendedKeyCode()
      Returns an extended key code for the event. The extended key code is a unique id assigned to a key on the keyboard just like keyCode. However, unlike keyCode, this value depends on the current keyboard layout. For instance, pressing the left topmost letter key in a common English layout produces the same value as keyCode, VK_Q. Pressing the same key in a regular Russian layout gives another code, unique for the letter "Cyrillic I short".
      Returns:
      an extended key code for the event
      Since:
      1.7
    • getExtendedKeyCodeForChar

      public static int getExtendedKeyCodeForChar(int c)
      Returns an extended key code for a unicode character.
      Parameters:
      c - the unicode character to be processed
      Returns:
      for a unicode character with a corresponding VK_ 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.
      Since:
      1.7