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 KeyStrokegetKeyStroke(char keyChar) 返回一个共享实例,表示指定字符的KEY_TYPED事件的KeyStroke。static KeyStrokegetKeyStroke(char keyChar, boolean onKeyRelease) 已弃用。使用getKeyStroke(char)static KeyStrokegetKeyStroke(int keyCode, int modifiers) 返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符。static KeyStrokegetKeyStroke(int keyCode, int modifiers, boolean onKeyRelease) 返回一个共享实例的KeyStroke,给定一个数字键码和一组修饰符,指定按下或释放键时是否激活该键。static KeyStrokegetKeyStroke(Character keyChar, int modifiers) 返回一个共享实例,表示指定Character对象和一组修饰符的KEY_TYPED事件的KeyStroke。static KeyStroke解析字符串并返回一个KeyStroke。static KeyStrokegetKeyStrokeForEvent(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
- 参见:
-