java.awt.event

Class KeyEvent

Implemented Interfaces:
Serializable
Known Direct Subclasses:
MenuKeyEvent

public class KeyEvent
extends InputEvent

This event is generated when a key is pressed or released. There are two categories of key events:

"Key typed" events are higher-level, and have already compensated for modifiers and keyboard layout to generate a single Unicode character. It may take several key press events to generate one key typed. The getKeyCode method will return VK_UNDEFINED, and getKeyChar will return a valid Unicode character or CHAR_UNDEFINED.

"Key pressed" and "key released" events are lower-level, and are platform and keyboard dependent. They correspond to the actaul motion on a keyboard, and return a virtual key code which labels the key that was pressed. The getKeyCode method will return one of the VK_* constants (except VK_UNDEFINED), and the getKeyChar method is undefined.

Some keys do not generate key typed events, such as the F1 or HELP keys. Not all keyboards can generate all virtual keys, and no attempt is made to simulate the ones that can't be typed. Virtual keys correspond to the keyboard layout, so for example, VK_Q in English is VK_A in French. Also, there are some additional virtual keys to ease handling of actions, such as VK_ALL_CANDIDATES in place of ALT+VK_CONVERT. Do not rely on the value of the VK_* constants, except for VK_ENTER, VK_BACK_SPACE, and VK_TAB.

Since:
1.1
See Also:
KeyAdapter, KeyListener, Serialized Form

Field Summary

static char
CHAR_UNDEFINED
The only char with no valid Unicode interpretation.
static int
KEY_FIRST
This is the first id in the range of event ids used by this class.
static int
KEY_LAST
This is the last id in the range of event ids used by this class.
static int
KEY_LOCATION_LEFT
Indicates the key is on the left side of the keyboard, such as the left shift.
static int
KEY_LOCATION_NUMPAD
Indicates the key is on the numeric pad, such as the numpad 0.
static int
KEY_LOCATION_RIGHT
Indicates the key is on the right side of the keyboard, such as the right shift.
static int
KEY_LOCATION_STANDARD
Indicates a standard key location, with no left/right variants and not on the numeric pad.
static int
KEY_LOCATION_UNKNOWN
Indicates unknown or irrelavent key location.
static int
KEY_PRESSED
This event id indicates a key was pressed.
static int
KEY_RELEASED
This event it indicates a key was released.
static int
KEY_TYPED
This event id indicates a key was typed, which is a key press followed by a key release to generate an actual Unicode character.
static int
VK_0
The virtual key VK_0.
static int
VK_1
The virtual key VK_1.
static int
VK_2
The virtual key VK_2.
static int
VK_3
The virtual key VK_3.
static int
VK_4
The virtual key VK_4.
static int
VK_5
The virtual key VK_5.
static int
VK_6
The virtual key VK_6.
static int
VK_7
The virtual key VK_7.
static int
VK_8
The virtual key VK_8.
static int
VK_9
The virtual key VK_9.
static int
VK_A
The virtual key VK_A.
static int
VK_ACCEPT
The virtual key VK_ACCEPT.
static int
VK_ADD
The virtual key VK_ADD.
static int
VK_AGAIN
The virtual key VK_AGAIN.
static int
VK_ALL_CANDIDATES
The virtual key VK_ALL_CANDIDATES.
static int
VK_ALPHANUMERIC
The virtual key VK_ALPHANUMERIC.
static int
VK_ALT
The virtual key VK_ALT.
static int
VK_ALT_GRAPH
The virtual key VK_ALT_GRAPH.
static int
VK_AMPERSAND
The virtual key VK_AMPERSAND.
static int
VK_ASTERISK
The virtual key VK_ASTERISK.
static int
VK_AT
The virtual key VK_AT.
static int
VK_B
The virtual key VK_B.
static int
VK_BACK_QUOTE
The virtual key VK_BACK_QUOTE.
static int
VK_BACK_SLASH
The virtual key VK_BACK_SLASH.
static int
VK_BACK_SPACE
The virtual key Backspace, which will always map to '\b'.
static int
VK_BEGIN
The 'begin' key VK_BEGIN
static int
VK_BRACELEFT
The virtual key VK_BRACELEFT.
static int
VK_BRACERIGHT
The virtual key VK_BRACERIGHT.
static int
VK_C
The virtual key VK_C.
static int
VK_CANCEL
The virtual key Cancel.
static int
VK_CAPS_LOCK
The virtual key VK_CAPS_LOCK.
static int
VK_CIRCUMFLEX
The virtual key VK_CIRCUMFLEX.
static int
VK_CLEAR
The virtual key VK_CLEAR.
static int
VK_CLOSE_BRACKET
The virtual key VK_CLOSE_BRACKET.
static int
VK_CODE_INPUT
The virtual key VK_CODE_INPUT.
static int
VK_COLON
The virtual key VK_COLON.
static int
VK_COMMA
The virtual key VK_COMMA.
static int
VK_COMPOSE
The virtual key VK_COMPOSE.
static int
VK_CONTEXT_MENU
The context-menu key VK_CONTEXT_MENU
static int
VK_CONTROL
The virtual key VK_CONTROL.
static int
VK_CONVERT
The virtual key VK_CONVERT.
static int
VK_COPY
The virtual key VK_COPY.
static int
VK_CUT
The virtual key VK_CUT.
static int
VK_D
The virtual key VK_D.
static int
VK_DEAD_ABOVEDOT
The virtual key VK_DEAD_ABOVEDOT.
static int
VK_DEAD_ABOVERING
The virtual key VK_DEAD_ABOVERING.
static int
VK_DEAD_ACUTE
The virtual key VK_DEAD_ACUTE.
static int
VK_DEAD_BREVE
The virtual key VK_DEAD_BREVE.
static int
VK_DEAD_CARON
The virtual key VK_DEAD_CARON.
static int
VK_DEAD_CEDILLA
The virtual key VK_DEAD_CEDILLA.
static int
VK_DEAD_CIRCUMFLEX
The virtual key VK_DEAD_CIRCUMFLEX.
static int
VK_DEAD_DIAERESIS
The virtual key VK_DEAD_DIAERESIS.
static int
VK_DEAD_DOUBLEACUTE
The virtual key VK_DEAD_DOUBLEACUTE.
static int
VK_DEAD_GRAVE
The virtual key VK_DEAD_GRAVE.
static int
VK_DEAD_IOTA
The virtual key VK_DEAD_IOTA.
static int
VK_DEAD_MACRON
The virtual key VK_DEAD_MACRON.
static int
VK_DEAD_OGONEK
The virtual key VK_DEAD_OGONEK.
static int
VK_DEAD_SEMIVOICED_SOUND
The virtual key VK_DEAD_SEMIVOICED_SOUND.
static int
VK_DEAD_TILDE
The virtual key VK_DEAD_TILDE.
static int
VK_DEAD_VOICED_SOUND
The virtual key VK_DEAD_VOICED_SOUND.
static int
VK_DECIMAL
The virtual key VK_DECIMAL.
static int
VK_DELETE
The virtual key VK_DELETE.
static int
VK_DIVIDE
The virtual key VK_DIVIDE.
static int
VK_DOLLAR
The virtual key VK_DOLLAR.
static int
VK_DOWN
The virtual key for the non-numpad VK_DOWN.
static int
VK_E
The virtual key VK_E.
static int
VK_END
The virtual key VK_END.
static int
VK_ENTER
The virtual key Enter, which will always map to '\n'.
static int
VK_EQUALS
The virtual key VK_EQUALS.
static int
VK_ESCAPE
The virtual key VK_ESCAPE.
static int
VK_EURO_SIGN
The virtual key VK_EURO_SIGN.
static int
VK_EXCLAMATION_MARK
The virtual key VK_EXCLAMATION_MARK.
static int
VK_F
The virtual key VK_F.
static int
VK_F1
The virtual key VK_F1.
static int
VK_F10
The virtual key VK_F10.
static int
VK_F11
The virtual key VK_F11.
static int
VK_F12
The virtual key VK_F12.
static int
VK_F13
The virtual key VK_F13.
static int
VK_F14
The virtual key VK_F14.
static int
VK_F15
The virtual key VK_F15.
static int
VK_F16
The virtual key VK_F16.
static int
VK_F17
The virtual key VK_F17.
static int
VK_F18
The virtual key VK_F18.
static int
VK_F19
The virtual key VK_F19.
static int
VK_F2
The virtual key VK_F2.
static int
VK_F20
The virtual key VK_F20.
static int
VK_F21
The virtual key VK_F21.
static int
VK_F22
The virtual key VK_F22.
static int
VK_F23
The virtual key VK_F23.
static int
VK_F24
The virtual key VK_F24.
static int
VK_F3
The virtual key VK_F3.
static int
VK_F4
The virtual key VK_F4.
static int
VK_F5
The virtual key VK_F5.
static int
VK_F6
The virtual key VK_F6.
static int
VK_F7
The virtual key VK_F7.
static int
VK_F8
The virtual key VK_F8.
static int
VK_F9
The virtual key VK_F9.
static int
VK_FINAL
The virtual key VK_FINAL.
static int
VK_FIND
The virtual key VK_FIND.
static int
VK_FULL_WIDTH
The virtual key VK_FULL_WIDTH.
static int
VK_G
The virtual key VK_G.
static int
VK_GREATER
The virtual key VK_GREATER.
static int
VK_H
The virtual key VK_H.
static int
VK_HALF_WIDTH
The virtual key VK_HALF_WIDTH.
static int
VK_HELP
The virtual key VK_HELP.
static int
VK_HIRAGANA
The virtual key VK_HIRAGANA.
static int
VK_HOME
The virtual key VK_HOME.
static int
VK_I
The virtual key VK_I.
static int
VK_INPUT_METHOD_ON_OFF
The virtual key VK_INPUT_METHOD_ON_OFF.
static int
VK_INSERT
The virtual key VK_INSERT.
static int
VK_INVERTED_EXCLAMATION_MARK
The virtual key VK_INVERTED_EXCLAMATION_MARK.
static int
VK_J
The virtual key VK_J.
static int
VK_JAPANESE_HIRAGANA
The virtual key VK_JAPANESE_HIRAGANA.
static int
VK_JAPANESE_KATAKANA
The virtual key VK_JAPANESE_KATAKANA.
static int
VK_JAPANESE_ROMAN
The virtual key VK_JAPANESE_ROMAN.
static int
VK_K
The virtual key VK_K.
static int
VK_KANA
The virtual key VK_KANA.
static int
VK_KANA_LOCK
The virtual key VK_KANA_LOCK.
static int
VK_KANJI
The virtual key VK_KANJI.
static int
VK_KATAKANA
The virtual key VK_KATAKANA.
static int
VK_KP_DOWN
The virtual key for the numpad VK_KP_DOWN.
static int
VK_KP_LEFT
The virtual key for the numpad VK_KP_LEFT.
static int
VK_KP_RIGHT
The virtual key for the numpad VK_KP_RIGHT.
static int
VK_KP_UP
The virtual key for the numpad VK_KP_UP.
static int
VK_L
The virtual key VK_L.
static int
VK_LEFT
The virtual key for the non-numpad VK_LEFT.
static int
VK_LEFT_PARENTHESIS
The virtual key VK_LEFT_PARENTHESIS.
static int
VK_LESS
The virtual key VK_LESS.
static int
VK_M
The virtual key VK_M.
static int
VK_META
The virtual key VK_META.
static int
VK_MINUS
The virtual key VK_MINUS.
static int
VK_MODECHANGE
The virtual key VK_MODECHANGE.
static int
VK_MULTIPLY
The virtual key VK_MULTIPLY.
static int
VK_N
The virtual key VK_N.
static int
VK_NONCONVERT
The virtual key VK_NONCONVERT.
static int
VK_NUMBER_SIGN
The virtual key VK_NUMBER_SIGN.
static int
VK_NUMPAD0
The virtual key VK_NUMPAD0.
static int
VK_NUMPAD1
The virtual key VK_NUMPAD1.
static int
VK_NUMPAD2
The virtual key VK_NUMPAD2.
static int
VK_NUMPAD3
The virtual key VK_NUMPAD3.
static int
VK_NUMPAD4
The virtual key VK_NUMPAD4.
static int
VK_NUMPAD5
The virtual key VK_NUMPAD5.
static int
VK_NUMPAD6
The virtual key VK_NUMPAD6.
static int
VK_NUMPAD7
The virtual key VK_NUMPAD7.
static int
VK_NUMPAD8
The virtual key VK_NUMPAD8.
static int
VK_NUMPAD9
The virtual key VK_NUMPAD9.
static int
VK_NUM_LOCK
The virtual key VK_NUM_LOCK.
static int
VK_O
The virtual key VK_O.
static int
VK_OPEN_BRACKET
The virtual key VK_OPEN_BRACKET.
static int
VK_P
The virtual key VK_P.
static int
VK_PAGE_DOWN
The virtual key VK_PAGE_DOWN.
static int
VK_PAGE_UP
The virtual key VK_PAGE_UP.
static int
VK_PASTE
The virtual key VK_PASTE.
static int
VK_PAUSE
The virtual key VK_PAUSE.
static int
VK_PERIOD
The virtual key VK_PERIOD.
static int
VK_PLUS
The virtual key VK_PLUS.
static int
VK_PREVIOUS_CANDIDATE
The virtual key VK_PREVIOUS_CANDIDATE.
static int
VK_PRINTSCREEN
The virtual key VK_PRINTSCREEN.
static int
VK_PROPS
The virtual key VK_PROPS.
static int
VK_Q
The virtual key VK_Q.
static int
VK_QUOTE
The virtual key VK_QUOTE.
static int
VK_QUOTEDBL
The virtual key VK_QUOTEDBL.
static int
VK_R
The virtual key VK_R.
static int
VK_RIGHT
The virtual key for the non-numpad VK_RIGHT.
static int
VK_RIGHT_PARENTHESIS
The virtual key VK_RIGHT_PARENTHESIS.
static int
VK_ROMAN_CHARACTERS
The virtual key VK_ROMAN_CHARACTERS.
static int
VK_S
The virtual key VK_S.
static int
VK_SCROLL_LOCK
The virtual key VK_SCROLL_LOCK.
static int
VK_SEMICOLON
The virtual key VK_SEMICOLON.
static int
VK_SEPARATER
Deprecated. use VK_SEPARATOR
static int
VK_SEPARATOR
The virtual key VK_SEPARATOR.
static int
VK_SHIFT
The virtual key VK_SHIFT.
static int
VK_SLASH
The virtual key VK_SLASH.
static int
VK_SPACE
The virtual key VK_SPACE.
static int
VK_STOP
The virtual key VK_STOP.
static int
VK_SUBTRACT
The virtual key VK_SUBTRACT.
static int
VK_T
The virtual key VK_T.
static int
VK_TAB
The virtual key Tab, which will always map to '\t'.
static int
VK_U
The virtual key VK_U.
static int
VK_UNDEFINED
The virtual key VK_UNDEFINED.
static int
VK_UNDERSCORE
The virtual key VK_UNDERSCORE.
static int
VK_UNDO
The virtual key VK_UNDO.
static int
VK_UP
The virtual key for the non-numpad VK_UP.
static int
VK_V
The virtual key VK_V.
static int
VK_W
The virtual key VK_W.
static int
VK_WINDOWS
The 'Windows' key VK_WINDOWS
static int
VK_X
The virtual key VK_X.
static int
VK_Y
The virtual key VK_Y.
static int
VK_Z
The virtual key VK_Z.

Fields inherited from class java.awt.event.InputEvent

ALT_DOWN_MASK, ALT_GRAPH_DOWN_MASK, ALT_GRAPH_MASK, ALT_MASK, BUTTON1_DOWN_MASK, BUTTON1_MASK, BUTTON2_DOWN_MASK, BUTTON2_MASK, BUTTON3_DOWN_MASK, BUTTON3_MASK, CTRL_DOWN_MASK, CTRL_MASK, META_DOWN_MASK, META_MASK, SHIFT_DOWN_MASK, SHIFT_MASK

Fields inherited from class java.awt.event.ComponentEvent

COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN

Fields inherited from class java.awt.AWTEvent

ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK, consumed, id

Fields inherited from class java.util.EventObject

source

Constructor Summary

KeyEvent(Component source, int id, long when, int modifiers, int keyCode)
Deprecated.
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
Initializes a new instance of KeyEvent with the specified information.
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)
Initializes a new instance of KeyEvent with the specified information.

Method Summary

char
getKeyChar()
Returns the Unicode value for the event key.
int
getKeyCode()
Returns the key code for the event key.
int
getKeyLocation()
Returns the keyboard location of the key that generated this event.
static String
getKeyModifiersText(int modifiers)
Returns a string describing the modifiers, such as "Shift" or "Ctrl+Button1".
static String
getKeyText(int keyCode)
Returns the text name of key code, such as "HOME", "F1", or "A".
boolean
isActionKey()
Tests whether or not this key is an action key.
String
paramString()
Returns a string identifying the event.
void
setKeyChar(char keyChar)
Sets the Unicode character for this event to the specified value.
void
setKeyCode(int keyCode)
Sets the key code for this event.
void
setModifiers(int modifiers)
Deprecated.

Methods inherited from class java.awt.event.InputEvent

consume, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown

Methods inherited from class java.awt.event.ComponentEvent

getComponent, paramString

Methods inherited from class java.awt.AWTEvent

consume, getID, isConsumed, paramString, setSource, toString

Methods inherited from class java.util.EventObject

getSource, toString

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

CHAR_UNDEFINED

public static final char CHAR_UNDEFINED
The only char with no valid Unicode interpretation. This is used for key pressed and key released events which do not have a valid keyChar.
Field Value:
'\uffff'

KEY_FIRST

public static final int KEY_FIRST
This is the first id in the range of event ids used by this class.
Field Value:
400

KEY_LAST

public static final int KEY_LAST
This is the last id in the range of event ids used by this class.
Field Value:
402

KEY_LOCATION_LEFT

public static final int KEY_LOCATION_LEFT
Indicates the key is on the left side of the keyboard, such as the left shift.
Field Value:
2
Since:
1.4

KEY_LOCATION_NUMPAD

public static final int KEY_LOCATION_NUMPAD
Indicates the key is on the numeric pad, such as the numpad 0.
Field Value:
4
Since:
1.4

KEY_LOCATION_RIGHT

public static final int KEY_LOCATION_RIGHT
Indicates the key is on the right side of the keyboard, such as the right shift.
Field Value:
3
Since:
1.4

KEY_LOCATION_STANDARD

public static final int KEY_LOCATION_STANDARD
Indicates a standard key location, with no left/right variants and not on the numeric pad.
Field Value:
1
Since:
1.4

KEY_LOCATION_UNKNOWN

public static final int KEY_LOCATION_UNKNOWN
Indicates unknown or irrelavent key location. This is also used for key typed events, which do not need a location.
Field Value:
0
Since:
1.4

KEY_PRESSED

public static final int KEY_PRESSED
This event id indicates a key was pressed.
Field Value:
401

KEY_RELEASED

public static final int KEY_RELEASED
This event it indicates a key was released.
Field Value:
402

KEY_TYPED

public static final int KEY_TYPED
This event id indicates a key was typed, which is a key press followed by a key release to generate an actual Unicode character. It may take several key presses to generate one key typed event, and some action keys have no corresponding key typed.
Field Value:
400

VK_0

public static final int VK_0
The virtual key VK_0.
Field Value:
48

VK_1

public static final int VK_1
The virtual key VK_1.
Field Value:
49

VK_2

public static final int VK_2
The virtual key VK_2.
Field Value:
50

VK_3

public static final int VK_3
The virtual key VK_3.
Field Value:
51

VK_4

public static final int VK_4
The virtual key VK_4.
Field Value:
52

VK_5

public static final int VK_5
The virtual key VK_5.
Field Value:
53

VK_6

public static final int VK_6
The virtual key VK_6.
Field Value:
54

VK_7

public static final int VK_7
The virtual key VK_7.
Field Value:
55

VK_8

public static final int VK_8
The virtual key VK_8.
Field Value:
56

VK_9

public static final int VK_9
The virtual key VK_9.
Field Value:
57

VK_A

public static final int VK_A
The virtual key VK_A.
Field Value:
65

VK_ACCEPT

public static final int VK_ACCEPT
The virtual key VK_ACCEPT.
Field Value:
30

VK_ADD

public static final int VK_ADD
The virtual key VK_ADD.
Field Value:
107

VK_AGAIN

public static final int VK_AGAIN
The virtual key VK_AGAIN.
Field Value:
65481
Since:
1.2

VK_ALL_CANDIDATES

public static final int VK_ALL_CANDIDATES
The virtual key VK_ALL_CANDIDATES.
Field Value:
256
Since:
1.2

VK_ALPHANUMERIC

public static final int VK_ALPHANUMERIC
The virtual key VK_ALPHANUMERIC.
Field Value:
240
Since:
1.2

VK_ALT

public static final int VK_ALT
The virtual key VK_ALT.
Field Value:
18

VK_ALT_GRAPH

public static final int VK_ALT_GRAPH
The virtual key VK_ALT_GRAPH.
Field Value:
65406
Since:
1.2

VK_AMPERSAND

public static final int VK_AMPERSAND
The virtual key VK_AMPERSAND.
Field Value:
150
Since:
1.2

VK_ASTERISK

public static final int VK_ASTERISK
The virtual key VK_ASTERISK.
Field Value:
151
Since:
1.2

VK_AT

public static final int VK_AT
The virtual key VK_AT.
Field Value:
512
Since:
1.2

VK_B

public static final int VK_B
The virtual key VK_B.
Field Value:
66

VK_BACK_QUOTE

public static final int VK_BACK_QUOTE
The virtual key VK_BACK_QUOTE.
Field Value:
192

VK_BACK_SLASH

public static final int VK_BACK_SLASH
The virtual key VK_BACK_SLASH.
Field Value:
92

VK_BACK_SPACE

public static final int VK_BACK_SPACE
The virtual key Backspace, which will always map to '\b'.
Field Value:
8

VK_BEGIN

public static final int VK_BEGIN
The 'begin' key VK_BEGIN
Field Value:
65368
Since:
1.5

VK_BRACELEFT

public static final int VK_BRACELEFT
The virtual key VK_BRACELEFT.
Field Value:
161
Since:
1.2

VK_BRACERIGHT

public static final int VK_BRACERIGHT
The virtual key VK_BRACERIGHT.
Field Value:
162
Since:
1.2

VK_C

public static final int VK_C
The virtual key VK_C.
Field Value:
67

VK_CANCEL

public static final int VK_CANCEL
The virtual key Cancel.
Field Value:
3

VK_CAPS_LOCK

public static final int VK_CAPS_LOCK
The virtual key VK_CAPS_LOCK.
Field Value:
20

VK_CIRCUMFLEX

public static final int VK_CIRCUMFLEX
The virtual key VK_CIRCUMFLEX.
Field Value:
514
Since:
1.2

VK_CLEAR

public static final int VK_CLEAR
The virtual key VK_CLEAR.
Field Value:
12

VK_CLOSE_BRACKET

public static final int VK_CLOSE_BRACKET
The virtual key VK_CLOSE_BRACKET.
Field Value:
93

VK_CODE_INPUT

public static final int VK_CODE_INPUT
The virtual key VK_CODE_INPUT.
Field Value:
258
Since:
1.2

VK_COLON

public static final int VK_COLON
The virtual key VK_COLON.
Field Value:
513
Since:
1.2

VK_COMMA

public static final int VK_COMMA
The virtual key VK_COMMA.
Field Value:
44

VK_COMPOSE

public static final int VK_COMPOSE
The virtual key VK_COMPOSE.
Field Value:
65312
Since:
1.2

VK_CONTEXT_MENU

public static final int VK_CONTEXT_MENU
The context-menu key VK_CONTEXT_MENU
Field Value:
525
Since:
1.5

VK_CONTROL

public static final int VK_CONTROL
The virtual key VK_CONTROL.
Field Value:
17

VK_CONVERT

public static final int VK_CONVERT
The virtual key VK_CONVERT.
Field Value:
28

VK_COPY

public static final int VK_COPY
The virtual key VK_COPY.
Field Value:
65485
Since:
1.2

VK_CUT

public static final int VK_CUT
The virtual key VK_CUT.
Field Value:
65489
Since:
1.2

VK_D

public static final int VK_D
The virtual key VK_D.
Field Value:
68

VK_DEAD_ABOVEDOT

public static final int VK_DEAD_ABOVEDOT
The virtual key VK_DEAD_ABOVEDOT.
Field Value:
134
Since:
1.2

VK_DEAD_ABOVERING

public static final int VK_DEAD_ABOVERING
The virtual key VK_DEAD_ABOVERING.
Field Value:
136
Since:
1.2

VK_DEAD_ACUTE

public static final int VK_DEAD_ACUTE
The virtual key VK_DEAD_ACUTE.
Field Value:
129
Since:
1.2

VK_DEAD_BREVE

public static final int VK_DEAD_BREVE
The virtual key VK_DEAD_BREVE.
Field Value:
133
Since:
1.2

VK_DEAD_CARON

public static final int VK_DEAD_CARON
The virtual key VK_DEAD_CARON.
Field Value:
138
Since:
1.2

VK_DEAD_CEDILLA

public static final int VK_DEAD_CEDILLA
The virtual key VK_DEAD_CEDILLA.
Field Value:
139
Since:
1.2

VK_DEAD_CIRCUMFLEX

public static final int VK_DEAD_CIRCUMFLEX
The virtual key VK_DEAD_CIRCUMFLEX.
Field Value:
130
Since:
1.2

VK_DEAD_DIAERESIS

public static final int VK_DEAD_DIAERESIS
The virtual key VK_DEAD_DIAERESIS.
Field Value:
135
Since:
1.2

VK_DEAD_DOUBLEACUTE

public static final int VK_DEAD_DOUBLEACUTE
The virtual key VK_DEAD_DOUBLEACUTE.
Field Value:
137
Since:
1.2

VK_DEAD_GRAVE

public static final int VK_DEAD_GRAVE
The virtual key VK_DEAD_GRAVE.
Field Value:
128
Since:
1.2

VK_DEAD_IOTA

public static final int VK_DEAD_IOTA
The virtual key VK_DEAD_IOTA.
Field Value:
141
Since:
1.2

VK_DEAD_MACRON

public static final int VK_DEAD_MACRON
The virtual key VK_DEAD_MACRON.
Field Value:
132
Since:
1.2

VK_DEAD_OGONEK

public static final int VK_DEAD_OGONEK
The virtual key VK_DEAD_OGONEK.
Field Value:
140
Since:
1.2

VK_DEAD_SEMIVOICED_SOUND

public static final int VK_DEAD_SEMIVOICED_SOUND
The virtual key VK_DEAD_SEMIVOICED_SOUND.
Field Value:
143
Since:
1.2

VK_DEAD_TILDE

public static final int VK_DEAD_TILDE
The virtual key VK_DEAD_TILDE.
Field Value:
131
Since:
1.2

VK_DEAD_VOICED_SOUND

public static final int VK_DEAD_VOICED_SOUND
The virtual key VK_DEAD_VOICED_SOUND.
Field Value:
142
Since:
1.2

VK_DECIMAL

public static final int VK_DECIMAL
The virtual key VK_DECIMAL.
Field Value:
110

VK_DELETE

public static final int VK_DELETE
The virtual key VK_DELETE.
Field Value:
127

VK_DIVIDE

public static final int VK_DIVIDE
The virtual key VK_DIVIDE.
Field Value:
111

VK_DOLLAR

public static final int VK_DOLLAR
The virtual key VK_DOLLAR.
Field Value:
515
Since:
1.2

VK_DOWN

public static final int VK_DOWN
The virtual key for the non-numpad VK_DOWN.
Field Value:
40
See Also:
VK_KP_DOWN

VK_E

public static final int VK_E
The virtual key VK_E.
Field Value:
69

VK_END

public static final int VK_END
The virtual key VK_END.
Field Value:
35

VK_ENTER

public static final int VK_ENTER
The virtual key Enter, which will always map to '\n'.
Field Value:
10

VK_EQUALS

public static final int VK_EQUALS
The virtual key VK_EQUALS.
Field Value:
61

VK_ESCAPE

public static final int VK_ESCAPE
The virtual key VK_ESCAPE.
Field Value:
27

VK_EURO_SIGN

public static final int VK_EURO_SIGN
The virtual key VK_EURO_SIGN.
Field Value:
516
Since:
1.2

VK_EXCLAMATION_MARK

public static final int VK_EXCLAMATION_MARK
The virtual key VK_EXCLAMATION_MARK.
Field Value:
517
Since:
1.2

VK_F

public static final int VK_F
The virtual key VK_F.
Field Value:
70

VK_F1

public static final int VK_F1
The virtual key VK_F1.
Field Value:
112

VK_F10

public static final int VK_F10
The virtual key VK_F10.
Field Value:
121

VK_F11

public static final int VK_F11
The virtual key VK_F11.
Field Value:
122

VK_F12

public static final int VK_F12
The virtual key VK_F12.
Field Value:
123

VK_F13

public static final int VK_F13
The virtual key VK_F13.
Field Value:
61440
Since:
1.2

VK_F14

public static final int VK_F14
The virtual key VK_F14.
Field Value:
61441
Since:
1.2

VK_F15

public static final int VK_F15
The virtual key VK_F15.
Field Value:
61442
Since:
1.2

VK_F16

public static final int VK_F16
The virtual key VK_F16.
Field Value:
61443
Since:
1.2

VK_F17

public static final int VK_F17
The virtual key VK_F17.
Field Value:
61444
Since:
1.2

VK_F18

public static final int VK_F18
The virtual key VK_F18.
Field Value:
61445
Since:
1.2

VK_F19

public static final int VK_F19
The virtual key VK_F19.
Field Value:
61446
Since:
1.2

VK_F2

public static final int VK_F2
The virtual key VK_F2.
Field Value:
113

VK_F20

public static final int VK_F20
The virtual key VK_F20.
Field Value:
61447
Since:
1.2

VK_F21

public static final int VK_F21
The virtual key VK_F21.
Field Value:
61448
Since:
1.2

VK_F22

public static final int VK_F22
The virtual key VK_F22.
Field Value:
61449
Since:
1.2

VK_F23

public static final int VK_F23
The virtual key VK_F23.
Field Value:
61450
Since:
1.2

VK_F24

public static final int VK_F24
The virtual key VK_F24.
Field Value:
61451
Since:
1.2

VK_F3

public static final int VK_F3
The virtual key VK_F3.
Field Value:
114

VK_F4

public static final int VK_F4
The virtual key VK_F4.
Field Value:
115

VK_F5

public static final int VK_F5
The virtual key VK_F5.
Field Value:
116

VK_F6

public static final int VK_F6
The virtual key VK_F6.
Field Value:
117

VK_F7

public static final int VK_F7
The virtual key VK_F7.
Field Value:
118

VK_F8

public static final int VK_F8
The virtual key VK_F8.
Field Value:
119

VK_F9

public static final int VK_F9
The virtual key VK_F9.
Field Value:
120

VK_FINAL

public static final int VK_FINAL
The virtual key VK_FINAL.
Field Value:
24

VK_FIND

public static final int VK_FIND
The virtual key VK_FIND.
Field Value:
65488
Since:
1.2

VK_FULL_WIDTH

public static final int VK_FULL_WIDTH
The virtual key VK_FULL_WIDTH.
Field Value:
243
Since:
1.2

VK_G

public static final int VK_G
The virtual key VK_G.
Field Value:
71

VK_GREATER

public static final int VK_GREATER
The virtual key VK_GREATER.
Field Value:
160
Since:
1.2

VK_H

public static final int VK_H
The virtual key VK_H.
Field Value:
72

VK_HALF_WIDTH

public static final int VK_HALF_WIDTH
The virtual key VK_HALF_WIDTH.
Field Value:
244
Since:
1.2

VK_HELP

public static final int VK_HELP
The virtual key VK_HELP.
Field Value:
156

VK_HIRAGANA

public static final int VK_HIRAGANA
The virtual key VK_HIRAGANA.
Field Value:
242
Since:
1.2

VK_HOME

public static final int VK_HOME
The virtual key VK_HOME.
Field Value:
36

VK_I

public static final int VK_I
The virtual key VK_I.
Field Value:
73

VK_INPUT_METHOD_ON_OFF

public static final int VK_INPUT_METHOD_ON_OFF
The virtual key VK_INPUT_METHOD_ON_OFF.
Field Value:
263
Since:
1.3

VK_INSERT

public static final int VK_INSERT
The virtual key VK_INSERT.
Field Value:
155

VK_INVERTED_EXCLAMATION_MARK

public static final int VK_INVERTED_EXCLAMATION_MARK
The virtual key VK_INVERTED_EXCLAMATION_MARK.
Field Value:
518
Since:
1.2

VK_J

public static final int VK_J
The virtual key VK_J.
Field Value:
74

VK_JAPANESE_HIRAGANA

public static final int VK_JAPANESE_HIRAGANA
The virtual key VK_JAPANESE_HIRAGANA.
Field Value:
260
Since:
1.2

VK_JAPANESE_KATAKANA

public static final int VK_JAPANESE_KATAKANA
The virtual key VK_JAPANESE_KATAKANA.
Field Value:
259
Since:
1.2

VK_JAPANESE_ROMAN

public static final int VK_JAPANESE_ROMAN
The virtual key VK_JAPANESE_ROMAN.
Field Value:
261
Since:
1.2

VK_K

public static final int VK_K
The virtual key VK_K.
Field Value:
75

VK_KANA

public static final int VK_KANA
The virtual key VK_KANA.
Field Value:
21

VK_KANA_LOCK

public static final int VK_KANA_LOCK
The virtual key VK_KANA_LOCK.
Field Value:
262
Since:
1.3

VK_KANJI

public static final int VK_KANJI
The virtual key VK_KANJI.
Field Value:
25

VK_KATAKANA

public static final int VK_KATAKANA
The virtual key VK_KATAKANA.
Field Value:
241
Since:
1.2

VK_KP_DOWN

public static final int VK_KP_DOWN
The virtual key for the numpad VK_KP_DOWN.
Field Value:
225
Since:
1.2
See Also:
VK_DOWN

VK_KP_LEFT

public static final int VK_KP_LEFT
The virtual key for the numpad VK_KP_LEFT.
Field Value:
226
Since:
1.2
See Also:
VK_LEFT

VK_KP_RIGHT

public static final int VK_KP_RIGHT
The virtual key for the numpad VK_KP_RIGHT.
Field Value:
227
Since:
1.2
See Also:
VK_RIGHT

VK_KP_UP

public static final int VK_KP_UP
The virtual key for the numpad VK_KP_UP.
Field Value:
224
Since:
1.2
See Also:
VK_UP

VK_L

public static final int VK_L
The virtual key VK_L.
Field Value:
76

VK_LEFT

public static final int VK_LEFT
The virtual key for the non-numpad VK_LEFT.
Field Value:
37
See Also:
VK_KP_LEFT

VK_LEFT_PARENTHESIS

public static final int VK_LEFT_PARENTHESIS
The virtual key VK_LEFT_PARENTHESIS.
Field Value:
519
Since:
1.2

VK_LESS

public static final int VK_LESS
The virtual key VK_LESS.
Field Value:
153
Since:
1.2

VK_M

public static final int VK_M
The virtual key VK_M.
Field Value:
77

VK_META

public static final int VK_META
The virtual key VK_META.
Field Value:
157

VK_MINUS

public static final int VK_MINUS
The virtual key VK_MINUS.
Field Value:
45
Since:
1.2

VK_MODECHANGE

public static final int VK_MODECHANGE
The virtual key VK_MODECHANGE.
Field Value:
31

VK_MULTIPLY

public static final int VK_MULTIPLY
The virtual key VK_MULTIPLY.
Field Value:
106

VK_N

public static final int VK_N
The virtual key VK_N.
Field Value:
78

VK_NONCONVERT

public static final int VK_NONCONVERT
The virtual key VK_NONCONVERT.
Field Value:
29

VK_NUMBER_SIGN

public static final int VK_NUMBER_SIGN
The virtual key VK_NUMBER_SIGN.
Field Value:
520
Since:
1.2

VK_NUMPAD0

public static final int VK_NUMPAD0
The virtual key VK_NUMPAD0.
Field Value:
96

VK_NUMPAD1

public static final int VK_NUMPAD1
The virtual key VK_NUMPAD1.
Field Value:
97

VK_NUMPAD2

public static final int VK_NUMPAD2
The virtual key VK_NUMPAD2.
Field Value:
98

VK_NUMPAD3

public static final int VK_NUMPAD3
The virtual key VK_NUMPAD3.
Field Value:
99

VK_NUMPAD4

public static final int VK_NUMPAD4
The virtual key VK_NUMPAD4.
Field Value:
100

VK_NUMPAD5

public static final int VK_NUMPAD5
The virtual key VK_NUMPAD5.
Field Value:
101

VK_NUMPAD6

public static final int VK_NUMPAD6
The virtual key VK_NUMPAD6.
Field Value:
102

VK_NUMPAD7

public static final int VK_NUMPAD7
The virtual key VK_NUMPAD7.
Field Value:
103

VK_NUMPAD8

public static final int VK_NUMPAD8
The virtual key VK_NUMPAD8.
Field Value:
104

VK_NUMPAD9

public static final int VK_NUMPAD9
The virtual key VK_NUMPAD9.
Field Value:
105

VK_NUM_LOCK

public static final int VK_NUM_LOCK
The virtual key VK_NUM_LOCK.
Field Value:
144

VK_O

public static final int VK_O
The virtual key VK_O.
Field Value:
79

VK_OPEN_BRACKET

public static final int VK_OPEN_BRACKET
The virtual key VK_OPEN_BRACKET.
Field Value:
91

VK_P

public static final int VK_P
The virtual key VK_P.
Field Value:
80

VK_PAGE_DOWN

public static final int VK_PAGE_DOWN
The virtual key VK_PAGE_DOWN.
Field Value:
34

VK_PAGE_UP

public static final int VK_PAGE_UP
The virtual key VK_PAGE_UP.
Field Value:
33

VK_PASTE

public static final int VK_PASTE
The virtual key VK_PASTE.
Field Value:
65487
Since:
1.2

VK_PAUSE

public static final int VK_PAUSE
The virtual key VK_PAUSE.
Field Value:
19

VK_PERIOD

public static final int VK_PERIOD
The virtual key VK_PERIOD.
Field Value:
46

VK_PLUS

public static final int VK_PLUS
The virtual key VK_PLUS.
Field Value:
521
Since:
1.2

VK_PREVIOUS_CANDIDATE

public static final int VK_PREVIOUS_CANDIDATE
The virtual key VK_PREVIOUS_CANDIDATE.
Field Value:
257
Since:
1.2

VK_PRINTSCREEN

public static final int VK_PRINTSCREEN
The virtual key VK_PRINTSCREEN.
Field Value:
154

VK_PROPS

public static final int VK_PROPS
The virtual key VK_PROPS.
Field Value:
65482
Since:
1.2

VK_Q

public static final int VK_Q
The virtual key VK_Q.
Field Value:
81

VK_QUOTE

public static final int VK_QUOTE
The virtual key VK_QUOTE.
Field Value:
222

VK_QUOTEDBL

public static final int VK_QUOTEDBL
The virtual key VK_QUOTEDBL.
Field Value:
152
Since:
1.2

VK_R

public static final int VK_R
The virtual key VK_R.
Field Value:
82

VK_RIGHT

public static final int VK_RIGHT
The virtual key for the non-numpad VK_RIGHT.
Field Value:
39
See Also:
VK_KP_RIGHT

VK_RIGHT_PARENTHESIS

public static final int VK_RIGHT_PARENTHESIS
The virtual key VK_RIGHT_PARENTHESIS.
Field Value:
522
Since:
1.2

VK_ROMAN_CHARACTERS

public static final int VK_ROMAN_CHARACTERS
The virtual key VK_ROMAN_CHARACTERS.
Field Value:
245
Since:
1.2

VK_S

public static final int VK_S
The virtual key VK_S.
Field Value:
83

VK_SCROLL_LOCK

public static final int VK_SCROLL_LOCK
The virtual key VK_SCROLL_LOCK.
Field Value:
145

VK_SEMICOLON

public static final int VK_SEMICOLON
The virtual key VK_SEMICOLON.
Field Value:
59

VK_SEPARATER

public static final int VK_SEPARATER

Deprecated. use VK_SEPARATOR

The virtual key VK_SEPARATOR, handily mispelled for those who can't figure it out.
Field Value:
108

VK_SEPARATOR

public static final int VK_SEPARATOR
The virtual key VK_SEPARATOR.
Field Value:
108
Since:
1.4

VK_SHIFT

public static final int VK_SHIFT
The virtual key VK_SHIFT.
Field Value:
16

VK_SLASH

public static final int VK_SLASH
The virtual key VK_SLASH.
Field Value:
47

VK_SPACE

public static final int VK_SPACE
The virtual key VK_SPACE.
Field Value:
32

VK_STOP

public static final int VK_STOP
The virtual key VK_STOP.
Field Value:
65480
Since:
1.2

VK_SUBTRACT

public static final int VK_SUBTRACT
The virtual key VK_SUBTRACT.
Field Value:
109

VK_T

public static final int VK_T
The virtual key VK_T.
Field Value:
84

VK_TAB

public static final int VK_TAB
The virtual key Tab, which will always map to '\t'.
Field Value:
9

VK_U

public static final int VK_U
The virtual key VK_U.
Field Value:
85

VK_UNDEFINED

public static final int VK_UNDEFINED
The virtual key VK_UNDEFINED. This is used for key typed events, which do not have a virtual key.
Field Value:
0

VK_UNDERSCORE

public static final int VK_UNDERSCORE
The virtual key VK_UNDERSCORE.
Field Value:
523
Since:
1.2

VK_UNDO

public static final int VK_UNDO
The virtual key VK_UNDO.
Field Value:
65483
Since:
1.2

VK_UP

public static final int VK_UP
The virtual key for the non-numpad VK_UP.
Field Value:
38
See Also:
VK_KP_UP

VK_V

public static final int VK_V
The virtual key VK_V.
Field Value:
86

VK_W

public static final int VK_W
The virtual key VK_W.
Field Value:
87

VK_WINDOWS

public static final int VK_WINDOWS
The 'Windows' key VK_WINDOWS
Field Value:
524
Since:
1.5

VK_X

public static final int VK_X
The virtual key VK_X.
Field Value:
88

VK_Y

public static final int VK_Y
The virtual key VK_Y.
Field Value:
89

VK_Z

public static final int VK_Z
The virtual key VK_Z.
Field Value:
90

Constructor Details

KeyEvent

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

Deprecated.

Initializes a new instance of KeyEvent with the specified information. Note that an invalid id leads to unspecified results.
Parameters:
source - the component that generated this event
id - the event id
when - the timestamp when the even occurred
modifiers - the modifier keys during the event, in old or new style
keyCode - the integer constant for the virtual key type
Throws:
IllegalArgumentException - if source is null, or if id == KEY_TYPED but keyCode != VK_UNDEFINED

KeyEvent

public KeyEvent(Component source,
                int id,
                long when,
                int modifiers,
                int keyCode,
                char keyChar)
Initializes a new instance of KeyEvent with the specified information. Note that an invalid id leads to unspecified results.
Parameters:
source - the component that generated this event
id - the event id
when - the timestamp when the even occurred
modifiers - the modifier keys during the event, in old or new style
keyCode - the integer constant for the virtual key type
keyChar - the Unicode value of the key
Throws:
IllegalArgumentException - if source is null, or if (id == KEY_TYPED && (keyCode != VK_UNDEFINED || keyChar == CHAR_UNDEFINED))

KeyEvent

public KeyEvent(Component source,
                int id,
                long when,
                int modifiers,
                int keyCode,
                char keyChar,
                int keyLocation)
Initializes a new instance of KeyEvent with the specified information. Note that an invalid id leads to unspecified results.
Parameters:
source - the component that generated this event
id - the event id
when - the timestamp when the even occurred
modifiers - the modifier keys during the event, in old or new style
keyCode - the integer constant for the virtual key type
keyChar - the Unicode value of the key
keyLocation - the location of the key
Throws:
IllegalArgumentException - if source is null, if keyLocation is invalid, or if (id == KEY_TYPED && (keyCode != VK_UNDEFINED || keyChar == CHAR_UNDEFINED))

Method Details

getKeyChar

public char getKeyChar()
Returns the Unicode value for the event key. This will be CHAR_UNDEFINED if there is no Unicode equivalent for this key, usually when this is a KEY_PRESSED or KEY_RELEASED event.
Returns:
the Unicode character for this event

getKeyCode

public int getKeyCode()
Returns the key code for the event key. This will be one of the VK_* constants defined in this class. If the event type is KEY_TYPED, the result will be VK_UNDEFINED.
Returns:
the key code for this event

getKeyLocation

public int getKeyLocation()
Returns the keyboard location of the key that generated this event. This provides a way to distinguish between keys like left and right shift which share a common key code. The result will be one of KEY_LOCATION_UNKNOWN, KEY_LOCATION_STANDARD, KEY_LOCATION_LEFT, KEY_LOCATION_RIGHT, or KEY_LOCATION_NUMPAD.
Returns:
the key location
Since:
1.4

getKeyModifiersText

public static String getKeyModifiersText(int modifiers)
Returns a string describing the modifiers, such as "Shift" or "Ctrl+Button1". XXX Sun claims this can be localized via the awt.properties file - how do we implement that?
Parameters:
modifiers - the old-style modifiers to convert to text
Returns:
a string representation of the modifiers in this bitmask

getKeyText

public static String getKeyText(int keyCode)
Returns the text name of key code, such as "HOME", "F1", or "A". XXX Sun claims this can be localized via the awt.properties file - how do we implement that?
Returns:
the text name of the key code

isActionKey

public boolean isActionKey()
Tests whether or not this key is an action key. An action key typically does not fire a KEY_TYPED event, and is not a modifier.
Returns:
true if this is an action key

paramString

public String paramString()
Returns a string identifying the event. This is formatted as the field name of the id type, followed by the keyCode, then the keyChar, modifiers (if any), extModifiers (if any), and keyLocation.
Overrides:
paramString in interface ComponentEvent
Returns:
a string identifying the event

setKeyChar

public void setKeyChar(char keyChar)
Sets the Unicode character for this event to the specified value.
Parameters:
keyChar - the new Unicode character for this event

setKeyCode

public void setKeyCode(int keyCode)
Sets the key code for this event. This must be one of the VK_* constants defined in this class.
Parameters:
keyCode - the new key code for this event

setModifiers

public void setModifiers(int modifiers)

Deprecated.

Sets the modifier keys to the specified value. This should be a union of the bit mask constants from InputEvent. The use of this method is not recommended, particularly for KEY_TYPED events, which do not check if the modifiers were changed.
Parameters:
modifiers - the new modifier value, in either old or new style
See Also:
InputEvent

KeyEvent.java -- event for key presses Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.