JavaTM Platform
Standard Ed. 6

java.awt
类 AWTKeyStroke

java.lang.Object
  继承者 java.awt.AWTKeyStroke
所有已实现的接口:
Serializable
直接已知子类:
KeyStroke

public class AWTKeyStroke
extends Object
implements Serializable

AWTKeyStroke 表示键盘(或等效输入设备)上的键操作。正如 KEY_PRESSEDKEY_RELEASED KeyEvent 一样,AWTKeyStroke 仅对应于一个特定键的按下或释放;另一方面,它们与 KEY_TYPED KeyEvent 事件一样,对应于键入一个特定 Java 字符的操作。在所有情况下,AWTKeyStroke 都可以指定修改键(alt、shift、control、meta、altGraph 或它们的组合),在针对精确匹配的操作中,这些修改键必须存在。

AWTKeyStrokes 是不可变的,并且应该是唯一的。客户机代码绝对不能自己创建 AWTKeyStroke,而应该使用 getAWTKeyStroke 的一个变体代替。使用这些工厂方法的客户机允许 AWTKeyStroke 实现有效地缓存和共享实例。

从以下版本开始:
1.4
另请参见:
getAWTKeyStroke(char), 序列化表格

构造方法摘要
protected AWTKeyStroke()
          使用默认值构造 AWTKeyStroke
protected AWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
          使用指定值构造 AWTKeyStroke
 
方法摘要
 boolean equals(Object anObject)
          如果此对象与指定对象相同,则返回 true。
static AWTKeyStroke getAWTKeyStroke(char keyChar)
          返回表示指定字符的 KEY_TYPED 事件的 AWTKeyStroke 的一个共享实例。
static AWTKeyStroke getAWTKeyStroke(Character keyChar, int modifiers)
          返回一个共享的 AWTKeyStroke 实例,它表示针对指定 Character 对象和一组组合键的 KEY_TYPED 事件。
static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers)
          在给出一个数字键代码和一组修饰符的情况下,返回 AWTKeyStroke 的一个共享实例。
static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
          在给出一个数字键代码和一组修饰符的情况下,返回 AWTKeyStroke 的一个共享实例,指定该键在按下或释放时是否是被激活。
static AWTKeyStroke getAWTKeyStroke(String s)
          分析字符串并返回一个 AWTKeyStroke
static AWTKeyStroke getAWTKeyStrokeForEvent(KeyEvent anEvent)
          返回一个 AWTKeyStroke,它表示生成给定 KeyEvent 的键击事件。
 char getKeyChar()
          返回此 AWTKeyStroke 的字符。
 int getKeyCode()
          返回此 AWTKeyStroke 的数字键代码。
 int getKeyEventType()
          返回 KeyEvent 的类型,它对应于此 AWTKeyStroke
 int getModifiers()
          返回此 AWTKeyStroke 的修饰符键。
 int hashCode()
          返回此对象的数值,它可能是唯一的,将它用作哈希表中的索引值是一个好选择。
 boolean isOnKeyRelease()
          返回此 AWTKeyStroke 是否表示一个键释放操作。
protected  Object readResolve()
          返回 AWTKeyStroke 的一个缓存实例(或 AWTKeyStroke 的子类),它与此实例相等。
protected static void registerSubclass(Class<?> subclass)
          注册一个新类,AWTKeyStroke 中的工厂方法在生成 AWTKeyStroke 的新实例时将使用它。
 String toString()
          返回一个显示并标识此对象属性的字符串。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

AWTKeyStroke

protected AWTKeyStroke()
使用默认值构造 AWTKeyStroke。使用的默认值如下:
属性默认值
Key Char KeyEvent.CHAR_UNDEFINED
Key Code KeyEvent.VK_UNDEFINED
Modifiers none
On key release? false
不应该通过客户机代码构造 AWTKeyStroke。应该使用 getAWTKeyStroke 的一个变体代替。

另请参见:
getAWTKeyStroke(char)

AWTKeyStroke

protected AWTKeyStroke(char keyChar,
                       int keyCode,
                       int modifiers,
                       boolean onKeyRelease)
使用指定值构造 AWTKeyStroke。不应该通过客户机代码构造 AWTKeyStroke。应该使用 getAWTKeyStroke 的一个变体代替。

参数:
keyChar - 键盘上某个键的字符值
keyCode - 此 AWTKeyStroke 的键代码
modifiers - 任意修饰符的按位或组合
onKeyRelease - 如果此 AWTKeyStroke 对应一个键释放,则该参数为 true;否则为 false
另请参见:
getAWTKeyStroke(char)
方法详细信息

registerSubclass

protected static void registerSubclass(Class<?> subclass)
注册一个新类,AWTKeyStroke 中的工厂方法在生成 AWTKeyStroke 的新实例时将使用它。调用此方法后,工厂方法将返回指定类的实例。指定的类必须是 AWTKeyStroke 或者从 AWTKeyStroke 派生的类,并且它必须有一个无参数构造方法。此构造方法可以具有任意的可访问性,其中包括 private。此操作刷新当前的 AWTKeyStroke 缓存。

参数:
subclass - 工厂方法应该创建其实例的新类
抛出:
IllegalArgumentException - 如果 subclass 为 null,或者 subclass 没有无参数构造方法
ClassCastException - 如果 subclass 不是 AWTKeyStroke 或者从 AWTKeyStroke 派生的类

getAWTKeyStroke

public static AWTKeyStroke getAWTKeyStroke(char keyChar)
返回表示指定字符的 KEY_TYPED 事件的 AWTKeyStroke 的一个共享实例。

参数:
keyChar - 键盘上某个键的字符值
返回:
该键的 AWTKeyStroke 对象

getAWTKeyStroke

public static AWTKeyStroke getAWTKeyStroke(Character keyChar,
                                           int modifiers)
返回一个共享的 AWTKeyStroke 实例,它表示针对指定 Character 对象和一组组合键的 KEY_TYPED 事件。注意,第一个参数是 Character 类型而不是 char 类型。这是为了避免在调用 getAWTKeyStroke(int keyCode, int modifiers) 时发生无意的冲突。修饰符由以下任意组合组成: 也可以使用下面列出的旧的修改键,但它们被映射到 _DOWN_ 修饰符。 也可以使用,但它们被映射到 _DOWN_ 修饰符。因为这些数字都是 2 的不同次幂,所以它们的任意组合是一个整数,该整数的每个位都表示一个不同的修饰符键。可以使用 0 指定无修饰符。

参数:
keyChar - 键盘字符的 Character 对象
modifiers - 任意修饰符的按位或组合
返回:
该键的 AWTKeyStroke 对象
抛出:
IllegalArgumentException - 如果 keyCharnull
另请参见:
InputEvent

getAWTKeyStroke

public static AWTKeyStroke getAWTKeyStroke(int keyCode,
                                           int modifiers,
                                           boolean onKeyRelease)
在给出一个数字键代码和一组修饰符的情况下,返回 AWTKeyStroke 的一个共享实例,指定该键在按下或释放时是否是被激活。

可以使用在 java.awt.event.KeyEvent 中定义的“虚拟键”常量来指定键代码。例如:

修饰符由以下任意组合组成: 旧的修饰符 也可以使用,但它们被映射到 _DOWN_ 修饰符。因为这些数字都是 2 的不同次幂,所以它们的任意组合是一个整数,该整数的每个位都表示一个不同的修饰符键。可以使用 0 指定无修饰符。

参数:
keyCode - 一个 int,指定键盘上某个键的数字代码
modifiers - 任意修饰符的按位或组合
onKeyRelease - 如果 AWTKeyStroke 应该表示一个键释放,则该参数为 true;否则为 false
返回:
该键的 AWTKeyStroke 对象
另请参见:
KeyEvent, InputEvent

getAWTKeyStroke

public static AWTKeyStroke getAWTKeyStroke(int keyCode,
                                           int modifiers)
在给出一个数字键代码和一组修饰符的情况下,返回 AWTKeyStroke 的一个共享实例。返回的 AWTKeyStroke 将对应于一个按键操作。

可以使用在 java.awt.event.KeyEvent 中定义的“虚拟键”常量来指定键代码。例如:

修饰符由以下任意组合组成: 旧的修饰符 也可以使用,但它们被映射到 _DOWN_ 修饰符。 因为这些数字都是 2 的不同次幂,所以它们的任意组合是一个整数,该整数的每个位都表示一个不同的修饰符键。可以使用 0 指定无修饰符。

参数:
keyCode - 一个 int,指定键盘上某个键的数字代码
modifiers - 任意修饰符的按位或组合
返回:
该键的 AWTKeyStroke 对象
另请参见:
KeyEvent, InputEvent

getAWTKeyStrokeForEvent

public static AWTKeyStroke getAWTKeyStrokeForEvent(KeyEvent anEvent)
返回一个 AWTKeyStroke,它表示生成给定 KeyEvent 的键击事件。

此方法获得来自 KeyTyped 事件的 keyChar,以及来自 KeyPressedKeyReleased 事件的 keyCode。为所有三种类型的 KeyEvent 获取 KeyEvent 修饰符。

参数:
anEvent - 从中获取 AWTKeyStrokeKeyEvent
返回:
促使该事件发生的 AWTKeyStroke
抛出:
NullPointerException - 如果 anEvent 为 null

getAWTKeyStroke

public static AWTKeyStroke getAWTKeyStroke(String s)
分析字符串并返回一个 AWTKeyStroke。该字符串必须具有以下语法:
    <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" => getAWTKeyStroke(KeyEvent.VK_INSERT, 0);
     "control DELETE" => getAWTKeyStroke(KeyEvent.VK_DELETE, InputEvent.CTRL_MASK);
     "alt shift X" => getAWTKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK);
     "alt shift released X" => getAWTKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true);
     "typed a" => getAWTKeyStroke('a');
 

参数:
s - 用上述方法格式化的一个字符串
返回:
该字符串的一个 AWTKeyStroke 对象
抛出:
IllegalArgumentException - 如果 snull,或者没有被正确地格式化

getKeyChar

public final char getKeyChar()
返回此 AWTKeyStroke 的字符。

返回:
一个 char 值
另请参见:
getAWTKeyStroke(char), KeyEvent.getKeyChar()

getKeyCode

public final int getKeyCode()
返回此 AWTKeyStroke 的数字键代码。

返回:
一个 int,它包含键代码值
另请参见:
getAWTKeyStroke(int,int), KeyEvent.getKeyCode()

getModifiers

public final int getModifiers()
返回此 AWTKeyStroke 的修饰符键。

返回:
一个 int,它包含修饰符
另请参见:
getAWTKeyStroke(int,int)

isOnKeyRelease

public final boolean isOnKeyRelease()
返回此 AWTKeyStroke 是否表示一个键释放操作。

返回:
如果此 AWTKeyStroke 表示一个键释放操作,则返回 true;否则返回 false
另请参见:
getAWTKeyStroke(int,int,boolean)

getKeyEventType

public final int getKeyEventType()
返回 KeyEvent 的类型,它对应于此 AWTKeyStroke

返回:
KeyEvent.KEY_PRESSEDKeyEvent.KEY_TYPEDKeyEvent.KEY_RELEASED
另请参见:
KeyEvent

hashCode

public int hashCode()
返回此对象的数值,它可能是唯一的,将它用作哈希表中的索引值是一个好选择。

覆盖:
Object 中的 hashCode
返回:
表示此对象的一个 int
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public final boolean equals(Object anObject)
如果此对象与指定对象相同,则返回 true。

覆盖:
Object 中的 equals
参数:
anObject - 将与此对象进行比较的对象
返回:
如果两个对象相同,则返回 true
另请参见:
Object.hashCode(), Hashtable

toString

public String toString()
返回一个显示并标识此对象属性的字符串。可以将此方法返回的 String 作为参数传递给 getAWTKeyStroke(String),以生成一个与此键击等效的键击。

覆盖:
Object 中的 toString
返回:
此对象的字符串表示形式
另请参见:
getAWTKeyStroke(String)

readResolve

protected Object readResolve()
                      throws ObjectStreamException
返回 AWTKeyStroke 的一个缓存实例(或 AWTKeyStroke 的子类),它与此实例相等。

返回:
一个与此实例相等的缓存实例
抛出:
ObjectStreamException

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策