|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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
指示组件中发生击键的事件。
当按下、释放或键入某个键时,由组件对象(如文本字段)生成此低级别事件。该事件被传递给每一个 KeyListener
或 KeyAdapter
对象,这些对象使用组件的 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 char |
CHAR_UNDEFINED KEY_PRESSED 和 KEY_RELEASED 事件没有映射到一个有效的 Unicode 字符时使用此值作为 keyChar 值。 |
static int |
KEY_FIRST 用于按键事件的 id 范围的起始编号。 |
static int |
KEY_LAST 用于按键事件的 id 范围的结束编号。 |
static int |
KEY_LOCATION_LEFT 该常量指示按下或释放的键位于左侧(此键可能有多个位置)。 |
static int |
KEY_LOCATION_NUMPAD 该常量指示按键事件来自于数字键盘或者是对应于数字键盘的虚拟键。 |
static int |
KEY_LOCATION_RIGHT 该常量指示按下或释放的键位于右侧(此键可能有多个位置)。 |
static int |
KEY_LOCATION_STANDARD 该常量指示按下或释放的键不区分左右,并且不是来自数字键盘(或者不是来自对应于数字键盘的虚拟键)。 |
static int |
KEY_LOCATION_UNKNOWN 指示 keyLocation 为不确定或不相关的常量。 |
static int |
KEY_PRESSED “按下键”事件。 |
static int |
KEY_RELEASED “释放键”事件。 |
static int |
KEY_TYPED “键入键”事件。 |
static int |
VK_0 VK_0 到 VK_9 与 ASCII 的‘0’到‘9’(0x30 - 0x39) 相同 |
static int |
VK_1 |
static int |
VK_2 |
static int |
VK_3 |
static int |
VK_4 |
static int |
VK_5 |
static int |
VK_6 |
static int |
VK_7 |
static int |
VK_8 |
static int |
VK_9 |
static int |
VK_A VK_A 到 VK_Z 与 ASCII 的‘A’到‘Z’(0x41 - 0x5A) 相同 |
static int |
VK_ACCEPT 用于接受或确认功能键的常量。 |
static int |
VK_ADD |
static int |
VK_AGAIN |
static int |
VK_ALL_CANDIDATES 用于所有候选功能键的常量。 |
static int |
VK_ALPHANUMERIC 用于字母数字功能键的常量。 |
static int |
VK_ALT |
static int |
VK_ALT_GRAPH 用于 AltGraph 功能键的常量。 |
static int |
VK_AMPERSAND |
static int |
VK_ASTERISK |
static int |
VK_AT 用于“@”键的常量。 |
static int |
VK_B |
static int |
VK_BACK_QUOTE |
static int |
VK_BACK_SLASH 用于反斜杠键“\”的常量。 |
static int |
VK_BACK_SPACE |
static int |
VK_BEGIN 用于开始键的常量。 |
static int |
VK_BRACELEFT |
static int |
VK_BRACERIGHT |
static int |
VK_C |
static int |
VK_CANCEL |
static int |
VK_CAPS_LOCK |
static int |
VK_CIRCUMFLEX 用于“^”键的常量。 |
static int |
VK_CLEAR |
static int |
VK_CLOSE_BRACKET 用于右方括号键“]”的常量。 |
static int |
VK_CODE_INPUT 用于代码输入功能键的常量。 |
static int |
VK_COLON 用于“:”键的常量。 |
static int |
VK_COMMA 用于逗号键“,”的常量。 |
static int |
VK_COMPOSE 用于组合功能键的常量。 |
static int |
VK_CONTEXT_MENU 用于 Microsoft Windows 上下文菜单键的常量。 |
static int |
VK_CONTROL |
static int |
VK_CONVERT 用于转换功能键的常量。 |
static int |
VK_COPY |
static int |
VK_CUT |
static int |
VK_D |
static int |
VK_DEAD_ABOVEDOT |
static int |
VK_DEAD_ABOVERING |
static int |
VK_DEAD_ACUTE |
static int |
VK_DEAD_BREVE |
static int |
VK_DEAD_CARON |
static int |
VK_DEAD_CEDILLA |
static int |
VK_DEAD_CIRCUMFLEX |
static int |
VK_DEAD_DIAERESIS |
static int |
VK_DEAD_DOUBLEACUTE |
static int |
VK_DEAD_GRAVE |
static int |
VK_DEAD_IOTA |
static int |
VK_DEAD_MACRON |
static int |
VK_DEAD_OGONEK |
static int |
VK_DEAD_SEMIVOICED_SOUND |
static int |
VK_DEAD_TILDE |
static int |
VK_DEAD_VOICED_SOUND |
static int |
VK_DECIMAL |
static int |
VK_DELETE |
static int |
VK_DIVIDE |
static int |
VK_DOLLAR 用于“$”键的常量。 |
static int |
VK_DOWN 用于非数字键盘向下方向键的常量。 |
static int |
VK_E |
static int |
VK_END |
static int |
VK_ENTER |
static int |
VK_EQUALS 用于等号键“=”的常量。 |
static int |
VK_ESCAPE |
static int |
VK_EURO_SIGN 用于欧洲货币符号键的常量。 |
static int |
VK_EXCLAMATION_MARK 用于“!”键的常量。 |
static int |
VK_F |
static int |
VK_F1 用于 F1 功能键的常量。 |
static int |
VK_F10 用于 F10 功能键的常量。 |
static int |
VK_F11 用于 F11 功能键的常量。 |
static int |
VK_F12 用于 F12 功能键的常量。 |
static int |
VK_F13 用于 F13 功能键的常量。 |
static int |
VK_F14 用于 F14 功能键的常量。 |
static int |
VK_F15 用于 F15 功能键的常量。 |
static int |
VK_F16 用于 F16 功能键的常量。 |
static int |
VK_F17 用于 F17 功能键的常量。 |
static int |
VK_F18 用于 F18 功能键的常量。 |
static int |
VK_F19 用于 F19 功能键的常量。 |
static int |
VK_F2 用于 F2 功能键的常量。 |
static int |
VK_F20 用于 F20 功能键的常量。 |
static int |
VK_F21 用于 F21 功能键的常量。 |
static int |
VK_F22 用于 F22 功能键的常量。 |
static int |
VK_F23 用于 F23 功能键的常量。 |
static int |
VK_F24 用于 F24 功能键的常量。 |
static int |
VK_F3 用于 F3 功能键的常量。 |
static int |
VK_F4 用于 F4 功能键的常量。 |
static int |
VK_F5 用于 F5 功能键的常量。 |
static int |
VK_F6 用于 F6 功能键的常量。 |
static int |
VK_F7 用于 F7 功能键的常量。 |
static int |
VK_F8 用于 F8 功能键的常量。 |
static int |
VK_F9 用于 F9 功能键的常量。 |
static int |
VK_FINAL |
static int |
VK_FIND |
static int |
VK_FULL_WIDTH 用于全角字符功能键的常量。 |
static int |
VK_G |
static int |
VK_GREATER |
static int |
VK_H |
static int |
VK_HALF_WIDTH 用于半角字符功能键的常量。 |
static int |
VK_HELP |
static int |
VK_HIRAGANA 用于平假名功能键的常量。 |
static int |
VK_HOME |
static int |
VK_I |
static int |
VK_INPUT_METHOD_ON_OFF 用于输入方法开/关键的常量。 |
static int |
VK_INSERT |
static int |
VK_INVERTED_EXCLAMATION_MARK 用于反向感叹号键的常量。 |
static int |
VK_J |
static int |
VK_JAPANESE_HIRAGANA 用于日文平假名功能键的常量。 |
static int |
VK_JAPANESE_KATAKANA 用于日文片假名功能键的常量。 |
static int |
VK_JAPANESE_ROMAN 用于日文罗马字符功能键的常量。 |
static int |
VK_K |
static int |
VK_KANA |
static int |
VK_KANA_LOCK 用于锁定假名功能键的常量。 |
static int |
VK_KANJI |
static int |
VK_KATAKANA 用于片假名功能键的常量。 |
static int |
VK_KP_DOWN 用于数字键盘向下方向键的常量。 |
static int |
VK_KP_LEFT 用于数字键盘向左方向键的常量。 |
static int |
VK_KP_RIGHT 用于数字键盘向右方向键的常量。 |
static int |
VK_KP_UP 用于数字键盘向上方向键的常量。 |
static int |
VK_L |
static int |
VK_LEFT 用于非数字键盘向左方向键的常量。 |
static int |
VK_LEFT_PARENTHESIS 用于“(”键的常量。 |
static int |
VK_LESS |
static int |
VK_M |
static int |
VK_META |
static int |
VK_MINUS 用于减号键“-”的常量 |
static int |
VK_MODECHANGE |
static int |
VK_MULTIPLY |
static int |
VK_N |
static int |
VK_NONCONVERT 用于不转换功能键的常量。 |
static int |
VK_NUM_LOCK |
static int |
VK_NUMBER_SIGN 用于“#”键的常量。 |
static int |
VK_NUMPAD0 |
static int |
VK_NUMPAD1 |
static int |
VK_NUMPAD2 |
static int |
VK_NUMPAD3 |
static int |
VK_NUMPAD4 |
static int |
VK_NUMPAD5 |
static int |
VK_NUMPAD6 |
static int |
VK_NUMPAD7 |
static int |
VK_NUMPAD8 |
static int |
VK_NUMPAD9 |
static int |
VK_O |
static int |
VK_OPEN_BRACKET 用于左方括号键“[”的常量。 |
static int |
VK_P |
static int |
VK_PAGE_DOWN |
static int |
VK_PAGE_UP |
static int |
VK_PASTE |
static int |
VK_PAUSE |
static int |
VK_PERIOD 用于句点键“.”的常量。 |
static int |
VK_PLUS 用于“+”键的常量。 |
static int |
VK_PREVIOUS_CANDIDATE 用于前一个候选功能键的常量。 |
static int |
VK_PRINTSCREEN |
static int |
VK_PROPS |
static int |
VK_Q |
static int |
VK_QUOTE |
static int |
VK_QUOTEDBL |
static int |
VK_R |
static int |
VK_RIGHT 用于非数字键盘向右方向键的常量。 |
static int |
VK_RIGHT_PARENTHESIS 用于“)”键的常量。 |
static int |
VK_ROMAN_CHARACTERS 用于罗马字符功能键的常量。 |
static int |
VK_S |
static int |
VK_SCROLL_LOCK |
static int |
VK_SEMICOLON 用于分号键“;”的常量。 |
static int |
VK_SEPARATER 此常量已废弃,包括它仅为了向后兼容。 |
static int |
VK_SEPARATOR 用于数字键盘分隔符键的常量。 |
static int |
VK_SHIFT |
static int |
VK_SLASH 用于正斜杠键“/”的常量。 |
static int |
VK_SPACE |
static int |
VK_STOP |
static int |
VK_SUBTRACT |
static int |
VK_T |
static int |
VK_TAB |
static int |
VK_U |
static int |
VK_UNDEFINED 此值用于指出 keyCode 是未知的。 |
static int |
VK_UNDERSCORE 用于“_”键的常量。 |
static int |
VK_UNDO |
static int |
VK_UP 用于非数字键盘向上方向键的常量。 |
static int |
VK_V |
static int |
VK_W |
static int |
VK_WINDOWS 用于 Microsoft Windows 的“Windows”键的常量。 |
static int |
VK_X |
static int |
VK_Y |
static int |
VK_Z |
从类 java.awt.event.ComponentEvent 继承的字段 |
---|
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN |
从类 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) |
方法摘要 | |
---|---|
char |
getKeyChar() 返回与此事件中的键相关联的字符。 |
int |
getKeyCode() 返回与此事件中的键相关联的整数 keyCode。 |
int |
getKeyLocation() 返回产生此按键事件的键位置。 |
static String |
getKeyModifiersText(int modifiers) 返回描述组合键的 String ,如“Shift”或“Ctrl+Shift”。 |
static String |
getKeyText(int keyCode) 返回描述 keyCode 的 String,如“HOME”、“F1”或“A”。 |
boolean |
isActionKey() 返回此事件中的键是否为“动作”键。 |
String |
paramString() 返回标识此事件的参数字符串。 |
void |
setKeyChar(char keyChar) 设置 keyCode 值,以表明某个逻辑字符。 |
void |
setKeyCode(int keyCode) 设置 keyCode 值,以表明某个物理键。 |
void |
setModifiers(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
- 另请参见:
- 常量字段值