java.lang.Object
java.awt.AWTKeyStroke
javax.swing.KeyStroke
- 所有已实现的接口:
-
Serializable
KeyStroke表示键盘上的按键操作,或等效的输入设备。KeyStroke可以对应于特定键的按下或释放,就像KEY_PRESSED和KEY_RELEASED KeyEvents一样;或者,它们可以对应于键入特定的Java字符,就像KEY_TYPED KeyEvents一样。在所有情况下,KeyStroke可以指定必须在动作期间存在的修饰符(alt、shift、control、meta、altGraph,或这些修饰符的组合)以进行精确匹配。
KeyStroke用于定义高级(语义)动作事件。与捕获每个按键并丢弃您不感兴趣的按键不同,您关心的那些按键会自动在其注册的组件上启动动作。
KeyStroke是不可变的,并且旨在是唯一的。客户端代码不能创建KeyStroke;必须使用getKeyStroke的变体。这些工厂方法允许KeyStroke实现有效地缓存和共享实例。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将对所有JavaBeans的长期存储支持添加到java.beans
包中。请参见XMLEncoder
。
- 自:
- 1.2
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionstatic KeyStroke
getKeyStroke
(char keyChar) 返回一个共享实例,表示指定字符的KEY_TYPED
事件的KeyStroke
。static KeyStroke
getKeyStroke
(char keyChar, boolean onKeyRelease) 已弃用。使用getKeyStroke(char)static KeyStroke
getKeyStroke
(int keyCode, int modifiers) 返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符。static KeyStroke
getKeyStroke
(int keyCode, int modifiers, boolean onKeyRelease) 返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符,指定按下或释放键时是否激活该键。static KeyStroke
getKeyStroke
(Character keyChar, int modifiers) 返回一个共享实例,表示指定Character对象和一组修饰符的KEY_TYPED
事件的KeyStroke
。static KeyStroke
解析字符串并返回一个KeyStroke
。static KeyStroke
getKeyStrokeForEvent
(KeyEvent anEvent) 返回一个表示生成给定KeyEvent的stroke的KeyStroke。Methods declared in class java.awt.AWTKeyStroke
equals, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStrokeForEvent, getKeyChar, getKeyCode, getKeyEventType, getModifiers, hashCode, isOnKeyRelease, readResolve, registerSubclass, toString
-
Method Details
-
getKeyStroke
返回一个共享实例,表示指定字符的KEY_TYPED
事件的KeyStroke
。- 参数:
-
keyChar
- 键盘键的字符值 - 返回:
- 该键的KeyStroke对象
-
getKeyStroke
Deprecated.use getKeyStroke(char)返回一个KeyStroke的实例,指定按下或释放键时是否被视为激活。与此类中的所有其他工厂方法不同,此方法返回的实例不一定被缓存或共享。- 参数:
-
keyChar
- 键盘键的字符值 -
onKeyRelease
- 如果此KeyStroke对应于键释放,则为true
;否则为false
。 - 返回:
- 该键的KeyStroke对象
-
getKeyStroke
返回一个共享实例,表示指定Character对象和一组修饰符的KEY_TYPED
事件的KeyStroke
。请注意,第一个参数的类型为Character而不是char。这是为了避免与调用getKeyStroke(int keyCode, int modifiers)
发生意外冲突。修饰符包括以下任意组合:- java.awt.event.InputEvent.SHIFT_DOWN_MASK
- java.awt.event.InputEvent.CTRL_DOWN_MASK
- java.awt.event.InputEvent.META_DOWN_MASK
- java.awt.event.InputEvent.ALT_DOWN_MASK
- java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
- java.awt.event.InputEvent.SHIFT_MASK
- java.awt.event.InputEvent.CTRL_MASK
- java.awt.event.InputEvent.META_MASK
- java.awt.event.InputEvent.ALT_MASK
- java.awt.event.InputEvent.ALT_GRAPH_MASK
- 参数:
-
keyChar
- 键盘字符的Character对象 -
modifiers
- 任意修饰符的按位或组合 - 返回:
- 该键的KeyStroke对象
- 抛出:
-
IllegalArgumentException
- 如果keyChar为null - 自:
- 1.3
- 参见:
-
getKeyStroke
返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符,指定按下或释放键时是否激活该键。java.awt.event.KeyEvent中定义的"虚拟键"常量可用于指定键码。例如:
- java.awt.event.KeyEvent.VK_ENTER
- java.awt.event.KeyEvent.VK_TAB
- java.awt.event.KeyEvent.VK_SPACE
java.awt.event.KeyEvent.getExtendedKeyCodeForChar
来获取键码。修饰符包括任意组合:- java.awt.event.InputEvent.SHIFT_DOWN_MASK
- java.awt.event.InputEvent.CTRL_DOWN_MASK
- java.awt.event.InputEvent.META_DOWN_MASK
- java.awt.event.InputEvent.ALT_DOWN_MASK
- java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
- java.awt.event.InputEvent.SHIFT_MASK
- java.awt.event.InputEvent.CTRL_MASK
- java.awt.event.InputEvent.META_MASK
- java.awt.event.InputEvent.ALT_MASK
- java.awt.event.InputEvent.ALT_GRAPH_MASK
- 参数:
-
keyCode
- 指定键盘键的数字代码 -
modifiers
- 任意修饰符的按位或组合 -
onKeyRelease
- 如果KeyStroke应该表示键释放,则为true
;否则为false
。 - 返回:
- 该键的KeyStroke对象
- 参见:
-
getKeyStroke
返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符。返回的KeyStroke将对应于按键。java.awt.event.KeyEvent中定义的"虚拟键"常量可用于指定键码。例如:
- java.awt.event.KeyEvent.VK_ENTER
- java.awt.event.KeyEvent.VK_TAB
- java.awt.event.KeyEvent.VK_SPACE
java.awt.event.KeyEvent.getExtendedKeyCodeForChar
来获取键码。修饰符包括任意组合:- java.awt.event.InputEvent.SHIFT_DOWN_MASK
- java.awt.event.InputEvent.CTRL_DOWN_MASK
- java.awt.event.InputEvent.META_DOWN_MASK
- java.awt.event.InputEvent.ALT_DOWN_MASK
- java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
- java.awt.event.InputEvent.SHIFT_MASK
- java.awt.event.InputEvent.CTRL_MASK
- java.awt.event.InputEvent.META_MASK
- java.awt.event.InputEvent.ALT_MASK
- java.awt.event.InputEvent.ALT_GRAPH_MASK
- 参数:
-
keyCode
- 指定键盘键的数字代码 -
modifiers
- 任意修饰符的按位或组合 - 返回:
- 该键的KeyStroke对象
- 参见:
-
getKeyStrokeForEvent
返回一个表示生成给定KeyEvent的stroke的KeyStroke。此方法从KeyTyped事件获取keyChar,并从KeyPressed或KeyReleased事件获取keyCode。KeyEvent修饰符适用于所有三种类型的KeyEvent。
- 参数:
-
anEvent
- 用于获取KeyStroke的KeyEvent - 返回:
- 引发事件的KeyStroke
- 抛出:
-
NullPointerException
- 如果anEvent
为null
-
getKeyStroke
解析字符串并返回一个KeyStroke
。字符串必须具有以下语法:<modifiers>* (<typedID> | <pressedReleasedID>) modifiers := shift | control | ctrl | meta | alt | altGraph typedID := typed <typedKey> typedKey := 长度为1的Unicode字符的字符串。 pressedReleasedID := (pressed | released) key key := KeyEvent键码名称,即在"VK_"之后的名称。
如果未指定typed、pressed或released,则假定为pressed。以下是一些示例:"INSERT" => getKeyStroke(KeyEvent.VK_INSERT, 0); "control DELETE" => getKeyStroke(KeyEvent.VK_DELETE, InputEvent.CTRL_MASK); "alt shift X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK); "alt shift released X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true); "typed a" => getKeyStroke('a');
为了保持向后兼容性,指定空字符串或格式不正确的字符串将返回null。- 参数:
-
s
- 格式如上所述的字符串 - 返回:
- 该字符串的KeyStroke对象,如果指定的字符串为null或格式不正确,则返回null
- 参见:
-