Save This Page
Home » openjdk-7 » java » awt » event » [javadoc | source]
java.awt.event
public class: KeyEvent [javadoc | source]
java.lang.Object
   java.util.EventObject
      java.awt.AWTEvent
         java.awt.event.ComponentEvent
            java.awt.event.InputEvent
               java.awt.event.KeyEvent

All Implemented Interfaces:
    Serializable

Direct Known Subclasses:
    MenuKeyEvent

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 {@code VK_UNDEFINED}. The {@code 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 {@code getKeyCode} and {@code 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):

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

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.

An unspecified behavior will be caused if the {@code id} parameter of any particular {@code KeyEvent} instance is not in the range from {@code KEY_FIRST} to {@code KEY_LAST}.

Field Summary
public static final  int KEY_FIRST    The first number in the range of ids used for key events. 
public static final  int KEY_LAST    The last number in the range of ids used for key events. 
public static final  int KEY_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. 
public static final  int KEY_PRESSED    The "key pressed" event. This event is generated when a key is pushed down. 
public static final  int KEY_RELEASED    The "key released" event. This event is generated when a key is let up. 
public static final  int VK_ENTER     
public static final  int VK_BACK_SPACE     
public static final  int VK_TAB     
public static final  int VK_CANCEL     
public static final  int VK_CLEAR     
public static final  int VK_SHIFT     
public static final  int VK_CONTROL     
public static final  int VK_ALT     
public static final  int VK_PAUSE     
public static final  int VK_CAPS_LOCK     
public static final  int VK_ESCAPE     
public static final  int VK_SPACE     
public static final  int VK_PAGE_UP     
public static final  int VK_PAGE_DOWN     
public static final  int VK_END     
public static final  int VK_HOME     
public static final  int VK_LEFT    Constant for the non-numpad left arrow key. 
public static final  int VK_UP    Constant for the non-numpad up arrow key. 
public static final  int VK_RIGHT    Constant for the non-numpad right arrow key. 
public static final  int VK_DOWN    Constant for the non-numpad down arrow key. 
public static final  int VK_COMMA    Constant for the comma key, "," 
public static final  int VK_MINUS    Constant for the minus key, "-"
    since: 1.2 -
 
public static final  int VK_PERIOD    Constant for the period key, "." 
public static final  int VK_SLASH    Constant for the forward slash key, "/" 
public static final  int VK_0    VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) 
public static final  int VK_1     
public static final  int VK_2     
public static final  int VK_3     
public static final  int VK_4     
public static final  int VK_5     
public static final  int VK_6     
public static final  int VK_7     
public static final  int VK_8     
public static final  int VK_9     
public static final  int VK_SEMICOLON    Constant for the semicolon key, ";" 
public static final  int VK_EQUALS    Constant for the equals key, "=" 
public static final  int VK_A    VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) 
public static final  int VK_B     
public static final  int VK_C     
public static final  int VK_D     
public static final  int VK_E     
public static final  int VK_F     
public static final  int VK_G     
public static final  int VK_H     
public static final  int VK_I     
public static final  int VK_J     
public static final  int VK_K     
public static final  int VK_L     
public static final  int VK_M     
public static final  int VK_N     
public static final  int VK_O     
public static final  int VK_P     
public static final  int VK_Q     
public static final  int VK_R     
public static final  int VK_S     
public static final  int VK_T     
public static final  int VK_U     
public static final  int VK_V     
public static final  int VK_W     
public static final  int VK_X     
public static final  int VK_Y     
public static final  int VK_Z     
public static final  int VK_OPEN_BRACKET    Constant for the open bracket key, "[" 
public static final  int VK_BACK_SLASH    Constant for the back slash key, "\" 
public static final  int VK_CLOSE_BRACKET    Constant for the close bracket key, "]" 
public static final  int VK_NUMPAD0     
public static final  int VK_NUMPAD1     
public static final  int VK_NUMPAD2     
public static final  int VK_NUMPAD3     
public static final  int VK_NUMPAD4     
public static final  int VK_NUMPAD5     
public static final  int VK_NUMPAD6     
public static final  int VK_NUMPAD7     
public static final  int VK_NUMPAD8     
public static final  int VK_NUMPAD9     
public static final  int VK_MULTIPLY     
public static final  int VK_ADD     
public static final  int VK_SEPARATER    This constant is obsolete, and is included only for backwards compatibility. 
public static final  int VK_SEPARATOR    Constant for the Numpad Separator key.
    since: 1.4 -
 
public static final  int VK_SUBTRACT     
public static final  int VK_DECIMAL     
public static final  int VK_DIVIDE     
public static final  int VK_DELETE     
public static final  int VK_NUM_LOCK     
public static final  int VK_SCROLL_LOCK     
public static final  int VK_F1    Constant for the F1 function key. 
public static final  int VK_F2    Constant for the F2 function key. 
public static final  int VK_F3    Constant for the F3 function key. 
public static final  int VK_F4    Constant for the F4 function key. 
public static final  int VK_F5    Constant for the F5 function key. 
public static final  int VK_F6    Constant for the F6 function key. 
public static final  int VK_F7    Constant for the F7 function key. 
public static final  int VK_F8    Constant for the F8 function key. 
public static final  int VK_F9    Constant for the F9 function key. 
public static final  int VK_F10    Constant for the F10 function key. 
public static final  int VK_F11    Constant for the F11 function key. 
public static final  int VK_F12    Constant for the F12 function key. 
public static final  int VK_F13    Constant for the F13 function key.
    since: 1.2 -
 
public static final  int VK_F14    Constant for the F14 function key.
    since: 1.2 -
 
public static final  int VK_F15    Constant for the F15 function key.
    since: 1.2 -
 
public static final  int VK_F16    Constant for the F16 function key.
    since: 1.2 -
 
public static final  int VK_F17    Constant for the F17 function key.
    since: 1.2 -
 
public static final  int VK_F18    Constant for the F18 function key.
    since: 1.2 -
 
public static final  int VK_F19    Constant for the F19 function key.
    since: 1.2 -
 
public static final  int VK_F20    Constant for the F20 function key.
    since: 1.2 -
 
public static final  int VK_F21    Constant for the F21 function key.
    since: 1.2 -
 
public static final  int VK_F22    Constant for the F22 function key.
    since: 1.2 -
 
public static final  int VK_F23    Constant for the F23 function key.
    since: 1.2 -
 
public static final  int VK_F24    Constant for the F24 function key.
    since: 1.2 -
 
public static final  int VK_PRINTSCREEN     
public static final  int VK_INSERT     
public static final  int VK_HELP     
public static final  int VK_META     
public static final  int VK_BACK_QUOTE     
public static final  int VK_QUOTE     
public static final  int VK_KP_UP    Constant for the numeric keypad up arrow key.
    Also see:
    VK_UP
    since: 1.2 -
 
public static final  int VK_KP_DOWN    Constant for the numeric keypad down arrow key. 
public static final  int VK_KP_LEFT    Constant for the numeric keypad left arrow key. 
public static final  int VK_KP_RIGHT    Constant for the numeric keypad right arrow key. 
public static final  int VK_DEAD_GRAVE   
    since: 1.2 -
 
public static final  int VK_DEAD_ACUTE   
    since: 1.2 -
 
public static final  int VK_DEAD_CIRCUMFLEX   
    since: 1.2 -
 
public static final  int VK_DEAD_TILDE   
    since: 1.2 -
 
public static final  int VK_DEAD_MACRON   
    since: 1.2 -
 
public static final  int VK_DEAD_BREVE   
    since: 1.2 -
 
public static final  int VK_DEAD_ABOVEDOT   
    since: 1.2 -
 
public static final  int VK_DEAD_DIAERESIS   
    since: 1.2 -
 
public static final  int VK_DEAD_ABOVERING   
    since: 1.2 -
 
public static final  int VK_DEAD_DOUBLEACUTE   
    since: 1.2 -
 
public static final  int VK_DEAD_CARON   
    since: 1.2 -
 
public static final  int VK_DEAD_CEDILLA   
    since: 1.2 -
 
public static final  int VK_DEAD_OGONEK   
    since: 1.2 -
 
public static final  int VK_DEAD_IOTA   
    since: 1.2 -
 
public static final  int VK_DEAD_VOICED_SOUND   
    since: 1.2 -
 
public static final  int VK_DEAD_SEMIVOICED_SOUND   
    since: 1.2 -
 
public static final  int VK_AMPERSAND   
    since: 1.2 -
 
public static final  int VK_ASTERISK   
    since: 1.2 -
 
public static final  int VK_QUOTEDBL   
    since: 1.2 -
 
public static final  int VK_LESS   
    since: 1.2 -
 
public static final  int VK_GREATER   
    since: 1.2 -
 
public static final  int VK_BRACELEFT   
    since: 1.2 -
 
public static final  int VK_BRACERIGHT   
    since: 1.2 -
 
public static final  int VK_AT    Constant for the "@" key.
    since: 1.2 -
 
public static final  int VK_COLON    Constant for the ":" key.
    since: 1.2 -
 
public static final  int VK_CIRCUMFLEX    Constant for the "^" key.
    since: 1.2 -
 
public static final  int VK_DOLLAR    Constant for the "$" key.
    since: 1.2 -
 
public static final  int VK_EURO_SIGN    Constant for the Euro currency sign key.
    since: 1.2 -
 
public static final  int VK_EXCLAMATION_MARK    Constant for the "!" key.
    since: 1.2 -
 
public static final  int VK_INVERTED_EXCLAMATION_MARK    Constant for the inverted exclamation mark key.
    since: 1.2 -
 
public static final  int VK_LEFT_PARENTHESIS    Constant for the "(" key.
    since: 1.2 -
 
public static final  int VK_NUMBER_SIGN    Constant for the "#" key.
    since: 1.2 -
 
public static final  int VK_PLUS    Constant for the "+" key.
    since: 1.2 -
 
public static final  int VK_RIGHT_PARENTHESIS    Constant for the ")" key.
    since: 1.2 -
 
public static final  int VK_UNDERSCORE    Constant for the "_" key.
    since: 1.2 -
 
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. 
public static final  int VK_CONTEXT_MENU    Constant for the Microsoft Windows Context Menu key.
    since: 1.5 -
 
public static final  int VK_FINAL     
public static final  int VK_CONVERT    Constant for the Convert function key. 
public static final  int VK_NONCONVERT    Constant for the Don't Convert function key. 
public static final  int VK_ACCEPT    Constant for the Accept or Commit function key. 
public static final  int VK_MODECHANGE     
public static final  int VK_KANA     
public static final  int VK_KANJI     
public static final  int VK_ALPHANUMERIC    Constant for the Alphanumeric function key.
    since: 1.2 -
 
public static final  int VK_KATAKANA    Constant for the Katakana function key.
    since: 1.2 -
 
public static final  int VK_HIRAGANA    Constant for the Hiragana function key.
    since: 1.2 -
 
public static final  int VK_FULL_WIDTH    Constant for the Full-Width Characters function key.
    since: 1.2 -
 
public static final  int VK_HALF_WIDTH    Constant for the Half-Width Characters function key.
    since: 1.2 -
 
public static final  int VK_ROMAN_CHARACTERS    Constant for the Roman Characters function key.
    since: 1.2 -
 
public static final  int VK_ALL_CANDIDATES    Constant for the All Candidates function key.
    since: 1.2 -
 
public static final  int VK_PREVIOUS_CANDIDATE    Constant for the Previous Candidate function key.
    since: 1.2 -
 
public static final  int VK_CODE_INPUT    Constant for the Code Input function key.
    since: 1.2 -
 
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 -
 
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 -
 
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 -
 
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 -
 
public static final  int VK_INPUT_METHOD_ON_OFF    Constant for the input method on/off key.
    since: 1.3 -
 
public static final  int VK_CUT   
    since: 1.2 -
 
public static final  int VK_COPY   
    since: 1.2 -
 
public static final  int VK_PASTE   
    since: 1.2 -
 
public static final  int VK_UNDO   
    since: 1.2 -
 
public static final  int VK_AGAIN   
    since: 1.2 -
 
public static final  int VK_FIND   
    since: 1.2 -
 
public static final  int VK_PROPS   
    since: 1.2 -
 
public static final  int VK_STOP   
    since: 1.2 -
 
public static final  int VK_COMPOSE    Constant for the Compose function key.
    since: 1.2 -
 
public static final  int VK_ALT_GRAPH    Constant for the AltGraph function key.
    since: 1.2 -
 
public static final  int VK_BEGIN    Constant for the Begin key.
    since: 1.5 -
 
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. 
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. 
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 -
 
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 -
 
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 -
 
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 -
 
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 -
 
 int keyCode    The unique value assigned to each of the keys on the keyboard. There is a common set of key codes that can be fired by most keyboards. The symbolic name for a key code should be used rather than the code value itself. 
 char keyChar    keyChar is a valid unicode character that is fired by a key or a key combination on a keyboard. 
 int keyLocation    The location of the key on the keyboard. 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 variable is used to distinguish such keys. The only legal values are KEY_LOCATION_UNKNOWN, KEY_LOCATION_STANDARD, KEY_LOCATION_LEFT, KEY_LOCATION_RIGHT, and KEY_LOCATION_NUMPAD. 
Fields inherited from java.awt.event.InputEvent:
SHIFT_MASK,  CTRL_MASK,  META_MASK,  ALT_MASK,  ALT_GRAPH_MASK,  BUTTON1_MASK,  BUTTON2_MASK,  BUTTON3_MASK,  SHIFT_DOWN_MASK,  CTRL_DOWN_MASK,  META_DOWN_MASK,  ALT_DOWN_MASK,  BUTTON1_DOWN_MASK,  BUTTON2_DOWN_MASK,  BUTTON3_DOWN_MASK,  ALT_GRAPH_DOWN_MASK,  FIRST_HIGH_BIT,  JDK_1_3_MODIFIERS,  HIGH_MODIFIERS,  when,  modifiers,  serialVersionUID
Fields inherited from java.awt.event.ComponentEvent:
COMPONENT_FIRST,  COMPONENT_LAST,  COMPONENT_MOVED,  COMPONENT_RESIZED,  COMPONENT_SHOWN,  COMPONENT_HIDDEN
Fields inherited from java.awt.AWTEvent:
id,  consumed,  focusManagerIsDispatching,  isPosted,  COMPONENT_EVENT_MASK,  CONTAINER_EVENT_MASK,  FOCUS_EVENT_MASK,  KEY_EVENT_MASK,  MOUSE_EVENT_MASK,  MOUSE_MOTION_EVENT_MASK,  WINDOW_EVENT_MASK,  ACTION_EVENT_MASK,  ADJUSTMENT_EVENT_MASK,  ITEM_EVENT_MASK,  TEXT_EVENT_MASK,  INPUT_METHOD_EVENT_MASK,  INPUT_METHODS_ENABLED_MASK,  PAINT_EVENT_MASK,  INVOCATION_EVENT_MASK,  HIERARCHY_EVENT_MASK,  HIERARCHY_BOUNDS_EVENT_MASK,  MOUSE_WHEEL_EVENT_MASK,  WINDOW_STATE_EVENT_MASK,  WINDOW_FOCUS_EVENT_MASK,  RESERVED_ID_MAX
Fields inherited from java.util.EventObject:
source
Constructor:
 public KeyEvent(Component source,
    int id,
    long when,
    int modifiers,
    int keyCode) 
     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
      Also see:
      getSource()
      getID()
      getWhen()
      getModifiers()
      getKeyCode()
      getKeyChar()
     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
      Also see:
      getSource()
      getID()
      getWhen()
      getModifiers()
      getKeyCode()
      getKeyChar()
      getKeyLocation()
      since: 1.4 -
    Method from java.awt.event.KeyEvent Summary:
    getExtendedKeyCode,   getExtendedKeyCodeForChar,   getKeyChar,   getKeyCode,   getKeyLocation,   getKeyModifiersText,   getKeyText,   isActionKey,   paramString,   setKeyChar,   setKeyCode,   setModifiers
    Methods from java.awt.event.InputEvent:
    consume,   getMaskForButton,   getModifiers,   getModifiersEx,   getModifiersExText,   getWhen,   isAltDown,   isAltGraphDown,   isConsumed,   isControlDown,   isMetaDown,   isShiftDown
    Methods from java.awt.event.ComponentEvent:
    getComponent,   paramString
    Methods from java.awt.AWTEvent:
    consume,   convertToOld,   copyPrivateDataInto,   dispatched,   getAccessControlContext,   getID,   isConsumed,   paramString,   setSource,   toString
    Methods from java.util.EventObject:
    getSource,   toString
    Methods from java.lang.Object:
    clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
    Method from java.awt.event.KeyEvent Detail:
     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 {@code keyCode}. However, unlike {@code 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 {@code keyCode}, {@code VK_Q}. Pressing the same key in a regular Russian layout gives another code, unique for the letter "Cyrillic I short".
     public static int getExtendedKeyCodeForChar(int c) 
      Returns an extended key code for a unicode character.
     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.

     public int getKeyCode() 
      Returns the integer keyCode associated with the key in this event.
     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.
     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.

     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.
     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.
     public String paramString() 
      Returns a parameter string identifying this event. This method is useful for event logging and for debugging.
     public  void setKeyChar(char keyChar) 
      Set the keyChar value to indicate a logical character.
     public  void setKeyCode(int keyCode) 
      Set the keyCode value to indicate a physical key.
     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.