- java.lang.Object
-
- java.awt.AWTKeyStroke
-
- javax.swing.KeyStroke
-
- All Implemented Interfaces:
-
Serializable
public class KeyStroke extends AWTKeyStroke
KeyStroke表示键盘或等效输入设备上的关键操作。 KeyStrokes只能对应于特定键的按下或释放,就像KEY_PRESSED和KEY_RELEASED键事件一样; 或者,它们可以对应于键入特定的Java字符,就像KEY_TYPED KeyEvents一样。 在所有情况下,KeyStrokes都可以指定修饰符(alt,shift,control,meta,altGraph或其组合),这些操作在精确匹配中必须存在。KeyStrokes用于定义高级(语义)动作事件。 您不需要捕获每个按键,而是丢弃您不感兴趣的按键,您关心的按键会自动启动与其注册的组件的操作。
KeyStrokes是不可变的,而且是独一无二的。 客户端代码无法创建KeyStroke; 必须使用
getKeyStroke
的变体。 这些工厂方法允许KeyStroke实现高效缓存和共享实例。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,所有JavaBeans的长期存储支持已被添加到
java.beans
软件包中。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
-
Keymap
,getKeyStroke(char)
, Serialized Form
-
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 static KeyStroke
getKeyStroke(char keyChar)
返回一个KeyStroke
的共享实例,表示指定字符的KEY_TYPED
事件。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)
返回一个KeyStroke
的共享实例,该实例表示指定的Character对象和一组修饰符的一个KEY_TYPED
事件。static KeyStroke
getKeyStroke(String s)
解析一个字符串并返回一个KeyStroke
。static KeyStroke
getKeyStrokeForEvent(KeyEvent anEvent)
返回一个KeyStroke,它表示生成给定KeyEvent的笔触。-
Methods inherited from class java.awt.AWTKeyStroke
equals, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStrokeForEvent, getKeyChar, getKeyCode, getKeyEventType, getModifiers, hashCode, isOnKeyRelease, readResolve, registerSubclass, toString
-
-
-
-
方法详细信息
-
getKeyStroke
public static KeyStroke getKeyStroke(char keyChar)
返回一个KeyStroke
的共享实例,表示指定字符的KEY_TYPED
事件。- 参数
-
keyChar
- 键盘键的字符值 - 结果
- 该键的KeyStroke对象
-
getKeyStroke
@Deprecated public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
已过时。 使用getKeyStroke(char)返回KeyStroke的一个实例,指定按下或释放该键是否被激活。 与此类中所有其他工厂方法不同,此方法返回的实例不一定被缓存或共享。- 参数
-
keyChar
- 键盘键的字符值 -
onKeyRelease
-true
如果此KeyStroke对应于密钥释放;false
否则。 - 结果
- 该键的KeyStroke对象
-
getKeyStroke
public static KeyStroke getKeyStroke(Character keyChar, int modifiers)
返回KeyStroke
的共享实例,该实例表示指定的Character对象的KEY_TYPED
事件和一组修饰符。 请注意,第一个参数的类型是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为空 - 从以下版本开始:
- 1.3
- 另请参见:
-
InputEvent
-
getKeyStroke
public static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
返回一个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
- 指定键盘键的数字代码的int -
modifiers
- 任何修饰符的按位组合 -
onKeyRelease
-true
如果KeyStroke应该代表一个密钥释放; 否则为false
。 - 结果
- 该键的KeyStroke对象
- 另请参见:
-
KeyEvent
,InputEvent
-
getKeyStroke
public static KeyStroke getKeyStroke(int keyCode, int modifiers)
返回一个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
- 指定键盘键的数字代码的int -
modifiers
- 任何修饰符的按位组合 - 结果
- 该键的KeyStroke对象
- 另请参见:
-
KeyEvent
,InputEvent
-
getKeyStrokeForEvent
public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
返回一个KeyStroke,它表示生成给定KeyEvent的笔触。此方法从KeyTyped事件获取keyChar,并从KeyPressed或KeyReleased事件获取keyCode。 KeyEvent修改器是针对所有三种类型的KeyEvent获得的。
- 参数
-
anEvent
- 从中获取KeyStroke的KeyEvent - 结果
- 引发事件的KeyStroke
- 异常
-
NullPointerException
- 如果anEvent
为空
-
getKeyStroke
public static KeyStroke getKeyStroke(String s)
解析一个字符串并返回一个KeyStroke
。 字符串必须具有以下语法:<modifiers>* (<typedID> | <pressedReleasedID>) modifiers := shift | control | ctrl | meta | alt | altGraph typedID := typed <typedKey> typedKey := string of length 1 giving Unicode character. pressedReleasedID := (pressed | released) key key := KeyEvent key code name, i.e. the name following "VK_".
如果没有指定键入,按下或释放,则按下。 这里有些例子:"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
- 如上所述格式化的字符串 - 结果
- 该String的KeyStroke对象,如果指定的String为空,则为null,或者格式不正确
- 另请参见:
-
KeyEvent
-
-