所有类


java.awt.event
类 KeyEvent

java.lang.Object
  继承者 java.util.EventObject
      继承者 java.awt.AWTEvent
          继承者 java.awt.event.ComponentEvent
              继承者 java.awt.event.InputEvent
                  继承者 java.awt.event.KeyEvent
所有已实现的接口:
Serializable
直接已知子类:
MenuKeyEvent

public class KeyEvent
   
   
   
   
   
extends InputEvent

指示组件中发生击键的事件。

当按下、释放或键入某个键时,由组件对象(如文本字段)生成此低级别事件。该事件被传递给每一个 KeyListenerKeyAdapter 对象,这些对象使用组件的 addKeyListener 方法注册,以接收此类事件。(KeyAdapter 对象实现 KeyListener 接口。)发生事件时,所有此类侦听器对象都获取此 KeyEvent

“键入键”事件 是高级别事件,通常不依赖于平台或键盘布局。输入 Unicode 字符时生成此类事件,它们被认为是输入字符的最佳方式。最简单的情况是按下单个键(如“a”)所产生的键入键事件。但是经常是通过一系列按键(如‘shift’+‘a’)来产生字符,并且按下键事件和键入键事件的映射关系可能是多对一或多对多的。键释放通常不需要生成一个键入键事件,但是在某些情况中,只有释放某个键才会生成键入键事件(如在 Windows 中通过 Alt-Numpad 方法来输入 ASCII 序列)。对于不生成 Unicode 字符的键是不会生成键入键事件的(如动作键、组合键等等)。

getKeyChar 方法总是返回有效的 Unicode 字符或 CHAR_UNDEFINED。KEY_TYPED 事件报告字符输入:KEY_PRESSED 和 KEY_RELEASED 事件不一定与字符输入相关联。因此,可以保证 getKeyChar 方法的结果仅对 KEY_TYPED 事件有意义。

对于按下键和释放键事件,getKeyCode 方法返回该事件的 keyCode。对于键入键事件,getKeyCode 方法总是返回 VK_UNDEFINED。

“按下键”和“释放键”事件 是低级别事件,并且依赖于平台和键盘布局。只要按下或释放键就生成这些事件,并且这些事件是获取不生成字符输入的键(如动作键、组合键等等)的惟一方式。由 getKeyCode 方法指示按下或释放的键,它返回一个虚拟键码。

虚拟键码 用于报告按下了键盘上的哪个键,而不是通过一个或多个击键组合所生成的字符(如“A”是由 shift+“a”生成的)。

例如,按下 Shift 键会生成 keyCode 为 VK_SHIFT 的 KEY_PRESSED 事件,而按下“a”键将生成 keyCode 为 VK_A 的 KEY_PRESSED 事件。释放“a”键后,会激发 keyCode 为 VK_A 的 KEY_RELEASED 事件。另外,还会生成一个 keyChar 值为 "A" 的 KEY_TYPED 事件。

注:

  • 不产生 Unicode 字符的键组合(如 F1 和 HELP 键等动作键)不会生成 KEY_TYPED 事件。
  • 并非所有键盘和系统都能够生成所有的虚拟键码。在 Java 中不会尝试人为地生成这些键。
  • 虚拟键码不标识物理键:它们取决于平台和键盘布局。例如,使用美国键盘布局时生成 VK_Q 的键在使用法国键盘布局时将生成 VK_A。
  • 并非所有的字符都有与其关联的 keycode。例如,没有用于问号的 keycode,因为没有在主层上显示问号的键盘。
  • 为了支持平台无关的动作键处理,Java 平台为某些功能使用少量附加虚拟键常量,否则必须通过解释虚拟键码和修饰符来识别这些功能。例如,对于日文 Windows 键盘,返回 VK_ALL_CANDIDATES 而不是 VK_CONVERT 加 ALT 修饰符。

警告:除了 Java 语言定义的这些键之外(VK_ENTER、VK_BACK_SPACE 和 VK_TAB),不要依赖于 VK_ 常量值。Sun 保留更改这些值的权利,以备将来根据需要适应更大范围的键盘。

从以下版本开始:
1.1
另请参见:
KeyAdapter, KeyListener, Tutorial: Writing a Key Listener, Reference: The Java Class Libraries (update file), 序列化表格

字段摘要
static charCHAR_UNDEFINED
          KEY_PRESSED 和 KEY_RELEASED 事件没有映射到一个有效的 Unicode 字符时使用此值作为 keyChar 值。
static intKEY_FIRST
          用于按键事件的 id 范围的起始编号。
static intKEY_LAST
          用于按键事件的 id 范围的结束编号。
static intKEY_LOCATION_LEFT
          该常量指示按下或释放的键位于左侧(此键可能有多个位置)。
static intKEY_LOCATION_NUMPAD
          该常量指示按键事件来自于数字键盘或者是对应于数字键盘的虚拟键。
static intKEY_LOCATION_RIGHT
          该常量指示按下或释放的键位于右侧(此键可能有多个位置)。
static intKEY_LOCATION_STANDARD
          该常量指示按下或释放的键不区分左右,并且不是来自数字键盘(或者不是来自对应于数字键盘的虚拟键)。
static intKEY_LOCATION_UNKNOWN
          指示 keyLocation 为不确定或不相关的常量。
static intKEY_PRESSED
          “按下键”事件。
static intKEY_RELEASED
          “释放键”事件。
static intKEY_TYPED
          “键入键”事件。
static intVK_0
          VK_0 到 VK_9 与 ASCII 的‘0’到‘9’(0x30 - 0x39) 相同
static intVK_1
           
static intVK_2
           
static intVK_3
           
static intVK_4
           
static intVK_5
           
static intVK_6
           
static intVK_7
           
static intVK_8
           
static intVK_9
           
static intVK_A
          VK_A 到 VK_Z 与 ASCII 的‘A’到‘Z’(0x41 - 0x5A) 相同
static intVK_ACCEPT
          用于接受或确认功能键的常量。
static intVK_ADD
           
static intVK_AGAIN
           
static intVK_ALL_CANDIDATES
          用于所有候选功能键的常量。
static intVK_ALPHANUMERIC
          用于字母数字功能键的常量。
static intVK_ALT
           
static intVK_ALT_GRAPH
          用于 AltGraph 功能键的常量。
static intVK_AMPERSAND
           
static intVK_ASTERISK
           
static intVK_AT
          用于“@”键的常量。
static intVK_B
           
static intVK_BACK_QUOTE
           
static intVK_BACK_SLASH
          用于反斜杠键“\”的常量。
static intVK_BACK_SPACE
           
static intVK_BEGIN
          用于开始键的常量。
static intVK_BRACELEFT
           
static intVK_BRACERIGHT
           
static intVK_C
           
static intVK_CANCEL
           
static intVK_CAPS_LOCK
           
static intVK_CIRCUMFLEX
          用于“^”键的常量。
static intVK_CLEAR
           
static intVK_CLOSE_BRACKET
          用于右方括号键“]”的常量。
static intVK_CODE_INPUT
          用于代码输入功能键的常量。
static intVK_COLON
          用于“:”键的常量。
static intVK_COMMA
          用于逗号键“,”的常量。
static intVK_COMPOSE
          用于组合功能键的常量。
static intVK_CONTEXT_MENU
          用于 Microsoft Windows 上下文菜单键的常量。
static intVK_CONTROL
           
static intVK_CONVERT
          用于转换功能键的常量。
static intVK_COPY
           
static intVK_CUT
           
static intVK_D
           
static intVK_DEAD_ABOVEDOT
           
static intVK_DEAD_ABOVERING
           
static intVK_DEAD_ACUTE
           
static intVK_DEAD_BREVE
           
static intVK_DEAD_CARON
           
static intVK_DEAD_CEDILLA
           
static intVK_DEAD_CIRCUMFLEX
           
static intVK_DEAD_DIAERESIS
           
static intVK_DEAD_DOUBLEACUTE
           
static intVK_DEAD_GRAVE
           
static intVK_DEAD_IOTA
           
static intVK_DEAD_MACRON
           
static intVK_DEAD_OGONEK
           
static intVK_DEAD_SEMIVOICED_SOUND
           
static intVK_DEAD_TILDE
           
static intVK_DEAD_VOICED_SOUND
           
static intVK_DECIMAL
           
static intVK_DELETE
           
static intVK_DIVIDE
           
static intVK_DOLLAR
          用于“$”键的常量。
static intVK_DOWN
          用于非数字键盘向下方向键的常量。
static intVK_E
           
static intVK_END
           
static intVK_ENTER
           
static intVK_EQUALS
          用于等号键“=”的常量。
static intVK_ESCAPE
           
static intVK_EURO_SIGN
          用于欧洲货币符号键的常量。
static intVK_EXCLAMATION_MARK
          用于“!”键的常量。
static intVK_F
           
static intVK_F1
          用于 F1 功能键的常量。
static intVK_F10
          用于 F10 功能键的常量。
static intVK_F11
          用于 F11 功能键的常量。
static intVK_F12
          用于 F12 功能键的常量。
static intVK_F13
          用于 F13 功能键的常量。
static intVK_F14
          用于 F14 功能键的常量。
static intVK_F15
          用于 F15 功能键的常量。
static intVK_F16
          用于 F16 功能键的常量。
static intVK_F17
          用于 F17 功能键的常量。
static intVK_F18
          用于 F18 功能键的常量。
static intVK_F19
          用于 F19 功能键的常量。
static intVK_F2
          用于 F2 功能键的常量。
static intVK_F20
          用于 F20 功能键的常量。
static intVK_F21
          用于 F21 功能键的常量。
static intVK_F22
          用于 F22 功能键的常量。
static intVK_F23
          用于 F23 功能键的常量。
static intVK_F24
          用于 F24 功能键的常量。
static intVK_F3
          用于 F3 功能键的常量。
static intVK_F4
          用于 F4 功能键的常量。
static intVK_F5
          用于 F5 功能键的常量。
static intVK_F6
          用于 F6 功能键的常量。
static intVK_F7
          用于 F7 功能键的常量。
static intVK_F8
          用于 F8 功能键的常量。
static intVK_F9
          用于 F9 功能键的常量。
static intVK_FINAL
           
static intVK_FIND
           
static intVK_FULL_WIDTH
          用于全角字符功能键的常量。
static intVK_G
           
static intVK_GREATER
           
static intVK_H
           
static intVK_HALF_WIDTH
          用于半角字符功能键的常量。
static intVK_HELP
           
static intVK_HIRAGANA
          用于平假名功能键的常量。
static intVK_HOME
           
static intVK_I
           
static intVK_INPUT_METHOD_ON_OFF
          用于输入方法开/关键的常量。
static intVK_INSERT
           
static intVK_INVERTED_EXCLAMATION_MARK
          用于反向感叹号键的常量。
static intVK_J
           
static intVK_JAPANESE_HIRAGANA
          用于日文平假名功能键的常量。
static intVK_JAPANESE_KATAKANA
          用于日文片假名功能键的常量。
static intVK_JAPANESE_ROMAN
          用于日文罗马字符功能键的常量。
static intVK_K
           
static intVK_KANA
           
static intVK_KANA_LOCK
          用于锁定假名功能键的常量。
static intVK_KANJI
           
static intVK_KATAKANA
          用于片假名功能键的常量。
static intVK_KP_DOWN
          用于数字键盘向下方向键的常量。
static intVK_KP_LEFT
          用于数字键盘向左方向键的常量。
static intVK_KP_RIGHT
          用于数字键盘向右方向键的常量。
static intVK_KP_UP
          用于数字键盘向上方向键的常量。
static intVK_L
           
static intVK_LEFT
          用于非数字键盘向左方向键的常量。
static intVK_LEFT_PARENTHESIS
          用于“(”键的常量。
static intVK_LESS
           
static intVK_M
           
static intVK_META
           
static intVK_MINUS
          用于减号键“-”的常量
static intVK_MODECHANGE
           
static intVK_MULTIPLY
           
static intVK_N
           
static intVK_NONCONVERT
          用于不转换功能键的常量。
static intVK_NUM_LOCK
           
static intVK_NUMBER_SIGN
          用于“#”键的常量。
static intVK_NUMPAD0
           
static intVK_NUMPAD1
           
static intVK_NUMPAD2
           
static intVK_NUMPAD3
           
static intVK_NUMPAD4
           
static intVK_NUMPAD5
           
static intVK_NUMPAD6
           
static intVK_NUMPAD7
           
static intVK_NUMPAD8
           
static intVK_NUMPAD9
           
static intVK_O
           
static intVK_OPEN_BRACKET
          用于左方括号键“[”的常量。
static intVK_P
           
static intVK_PAGE_DOWN
           
static intVK_PAGE_UP
           
static intVK_PASTE
           
static intVK_PAUSE
           
static intVK_PERIOD
          用于句点键“.”的常量。
static intVK_PLUS
          用于“+”键的常量。
static intVK_PREVIOUS_CANDIDATE
          用于前一个候选功能键的常量。
static intVK_PRINTSCREEN
           
static intVK_PROPS
           
static intVK_Q
           
static intVK_QUOTE
           
static intVK_QUOTEDBL
           
static intVK_R
           
static intVK_RIGHT
          用于非数字键盘向右方向键的常量。
static intVK_RIGHT_PARENTHESIS
          用于“)”键的常量。
static intVK_ROMAN_CHARACTERS
          用于罗马字符功能键的常量。
static intVK_S
           
static intVK_SCROLL_LOCK
           
static intVK_SEMICOLON
          用于分号键“;”的常量。
static intVK_SEPARATER
          此常量已废弃,包括它仅为了向后兼容。
static intVK_SEPARATOR
          用于数字键盘分隔符键的常量。
static intVK_SHIFT
           
static intVK_SLASH
          用于正斜杠键“/”的常量。
static intVK_SPACE
           
static intVK_STOP
           
static intVK_SUBTRACT
           
static intVK_T
           
static intVK_TAB
           
static intVK_U
           
static intVK_UNDEFINED
          此值用于指出 keyCode 是未知的。
static intVK_UNDERSCORE
          用于“_”键的常量。
static intVK_UNDO
           
static intVK_UP
          用于非数字键盘向上方向键的常量。
static intVK_V
           
static intVK_W
           
static intVK_WINDOWS
          用于 Microsoft Windows 的“Windows”键的常量。
static intVK_X
           
static intVK_Y
           
static intVK_Z
           
 
从类 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
 
从类 java.awt.event.ComponentEvent 继承的字段
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
 
从类 java.awt.AWTEvent 继承的字段
ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, 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
 
从类 java.util.EventObject 继承的字段
source
 
构造方法摘要
KeyEvent(Component source, int id, long when, int modifiers, int keyCode)
          已过时。 从 JDK1.1 开始
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
          构造一个 KeyEvent 对象。
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)
           
 
方法摘要
 chargetKeyChar()
          返回与此事件中的键相关联的字符。
 intgetKeyCode()
          返回与此事件中的键相关联的整数 keyCode。
 intgetKeyLocation()
          返回产生此按键事件的键位置。
static StringgetKeyModifiersText(int modifiers)
          返回描述组合键的 String,如“Shift”或“Ctrl+Shift”。
static StringgetKeyText(int keyCode)
          返回描述 keyCode 的 String,如“HOME”、“F1”或“A”。
 booleanisActionKey()
          返回此事件中的键是否为“动作”键。
 StringparamString()
          返回标识此事件的参数字符串。
 voidsetKeyChar(char keyChar)
          设置 keyCode 值,以表明某个逻辑字符。
 voidsetKeyCode(int keyCode)
          设置 keyCode 值,以表明某个物理键。
 voidsetModifiers(int modifiers)
          已过时。 从 JDK1.1.4 开始
 
从类 java.awt.event.InputEvent 继承的方法
consume, getModifiers, getModifiersEx, getModifiersExText, getWhen, isAltDown, isAltGraphDown, isConsumed, isControlDown, isMetaDown, isShiftDown
 
从类 java.awt.event.ComponentEvent 继承的方法
getComponent
 
从类 java.awt.AWTEvent 继承的方法
getID, setSource, toString
 
从类 java.util.EventObject 继承的方法
getSource
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

KEY_FIRST

public static final int KEY_FIRST
用于按键事件的 id 范围的起始编号。

另请参见:
常量字段值

KEY_LAST

public static final int KEY_LAST
用于按键事件的 id 范围的结束编号。

另请参见:
常量字段值

KEY_TYPED

public static final int KEY_TYPED
“键入键”事件。输入字符时生成此事件。最简单的情况是按下单个键产生该事件。但是经常是通过一系列按键来产生字符,并且按下键事件和键入键事件的映射关系可能是多对一或多对多的。

另请参见:
常量字段值

KEY_PRESSED

public static final int KEY_PRESSED
“按下键”事件。键被按下时生成此事件。

另请参见:
常量字段值

KEY_RELEASED

public static final int KEY_RELEASED
“释放键”事件。松开键时生成此事件。

另请参见:
常量字段值

VK_ENTER

public static final int VK_ENTER
另请参见:
常量字段值

VK_BACK_SPACE

public static final int VK_BACK_SPACE
另请参见:
常量字段值