public class KeyStroke extends AWTKeyStroke
KeyStrokes用于定义高级(语义)动作事件。 您不需要捕获每个按键,而是丢弃不感兴趣的按键,您关心的按键会自动启动他们注册的组件上的操作。
KeyStrokes是不可变的,而且是独一无二的。 客户端代码无法创建KeyStroke; 必须使用getKeyStroke
的变体。 这些工厂方法允许KeyStroke实现高效缓存和共享实例。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到java.beans
包中。 请参阅XMLEncoder
。
Keymap
, getKeyStroke(char)
Modifier and Type | Method and Description |
---|---|
static KeyStroke |
getKeyStroke(char keyChar)
返回一个
KeyStroke 的共享实例,代表
KeyStroke 字符的
KEY_TYPED 事件。
|
static KeyStroke |
getKeyStroke(Character keyChar, int modifiers)
返回一个
KeyStroke 的共享实例,代表指定的Character对象和一组修饰符的
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(String s)
解析一个字符串并返回一个
KeyStroke 。
|
static KeyStroke |
getKeyStrokeForEvent(KeyEvent anEvent)
返回一个KeyStroke,它表示生成给定KeyEvent的笔触。
|
equals, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStrokeForEvent, getKeyChar, getKeyCode, getKeyEventType, getModifiers, hashCode, isOnKeyRelease, readResolve, registerSubclass, toString
public static KeyStroke getKeyStroke(char keyChar)
KeyStroke
的共享实例,表示
KeyStroke
字符的
KEY_TYPED
事件。
keyChar
- 键盘键的字符值
@Deprecated public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
keyChar
- 键盘键的字符值
onKeyRelease
- true
如果此KeyStroke对应于密钥释放;
false
否则。
public static KeyStroke getKeyStroke(Character keyChar, int modifiers)
KeyStroke
的共享实例,代表指定的Character对象和一组修饰符的KEY_TYPED
事件。
请注意,第一个参数的类型是Character而不是char。
这是为了避免与调用发生无意的冲突getKeyStroke(int keyCode, int modifiers)
。
修饰符由以下任意组合组成:
keyChar
- 键盘字符的Character对象
modifiers
- 任何修饰符的按位组合
IllegalArgumentException
- 如果keyChar为空
InputEvent
public static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
可以使用java.awt.event.KeyEvent中定义的“虚拟键”常量来指定密钥代码。 例如:
java.awt.event.KeyEvent.getExtendedKeyCodeForChar
获得密钥代码。
修饰符由以下任何组合组成:
keyCode
- 指定键盘键的数字代码的int
modifiers
- 任何修饰符的按位组合
onKeyRelease
- true
如果KeyStroke应该代表一个密钥释放;
false
否则。
KeyEvent
, InputEvent
public static KeyStroke getKeyStroke(int keyCode, int modifiers)
可以使用java.awt.event.KeyEvent中定义的“虚拟键”常量来指定密钥代码。 例如:
java.awt.event.KeyEvent.getExtendedKeyCodeForChar
获得。
修饰符由以下任何组合组成:
keyCode
- 指定键盘键的数字代码的int
modifiers
- 任何修饰符的按位组合
KeyEvent
, InputEvent
public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
此方法从KeyTyped事件获取keyChar,并从KeyPressed或KeyReleased事件获取keyCode。 KeyEvent修改器是针对所有三种类型的KeyEvent获得的。
anEvent
- 从中获取KeyStroke的KeyEvent
NullPointerException
- 如果
anEvent
为空
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
- 如上所述
s
的字符串
KeyEvent