- java.lang.Object
-
- java.awt.AWTKeyStroke
-
- javax.swing.KeyStroke
-
- 实现的所有接口
-
Serializable
public class KeyStroke extends AWTKeyStroke
KeyStroke表示键盘或等效输入设备上的键操作。 KeyStrokes只能对应于特定键的按下或释放,就像KEY_PRESSED和KEY_RELEASED KeyEvents一样; 或者,它们可以对应于键入特定的Java字符,就像KEY_TYPED KeyEvents那样。 在所有情况下,KeyStrokes都可以指定操作期间必须存在的修饰符(alt,shift,control,meta,altGraph或其组合)以进行精确匹配。KeyStrokes用于定义高级(语义)动作事件。 您不关心每次按键并丢弃您不感兴趣的按键,而是您关心的那些按键会自动启动对其注册的组件的操作。
KeyStrokes是不可变的,并且是唯一的。 客户端代码无法创建KeyStroke; 必须使用
getKeyStroke
的变体。 这些工厂方法允许KeyStroke实现有效地缓存和共享实例。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
-
Keymap
,getKeyStroke(char)
, Serialized Form
-
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 变量和类型 方法 描述 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的笔划。
-
-
-
方法详细信息
-
getKeyStroke
public static KeyStroke getKeyStroke(char keyChar)
返回KeyStroke
的共享实例,该实例表示指定字符的KEY_TYPED
事件。- 参数
-
keyChar
- 键盘键的字符值 - 结果
- 该键的KeyStroke对象
-
getKeyStroke
@Deprecated public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
Deprecated.use 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为null - 从以下版本开始:
- 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 String或格式不正确的String,返回null。- 参数
-
s
- 如上所述格式化的字符串 - 结果
- 该String的KeyStroke对象,如果指定的String为null,或者格式不正确,则为null
- 另请参见:
-
KeyEvent
-
-