Module java.desktop
Package java.awt

Class AWTKeyStroke

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

public class AWTKeyStroke extends Object implements Serializable
AWTKeyStroke表示键盘上的按键操作,或等效的输入设备。 AWTKeyStroke可以对应于特定键的按下或释放,就像KEY_PRESSEDKEY_RELEASED KeyEvent一样;或者,它们可以对应于键入特定的Java字符,就像KEY_TYPED KeyEvent一样。在所有情况下,AWTKeyStroke可以指定必须在动作期间存在的修饰符(alt、shift、control、meta、altGraph,或这些修饰符的组合)以进行精确匹配。

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

自:
1.4
另请参阅:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    构造具有默认值的AWTKeyStroke
    protected
    AWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
    构造具有指定值的AWTKeyStroke
  • Method Summary

    Modifier and Type
    Method
    Description
    final boolean
    equals(Object anObject)
    如果此对象与指定对象相同,则返回true。
    static AWTKeyStroke
    getAWTKeyStroke(char keyChar)
    返回表示指定字符的KEY_TYPED事件的AWTKeyStroke的共享实例。
    static AWTKeyStroke
    getAWTKeyStroke(int keyCode, int modifiers)
    返回给定数字键代码和一组修饰符的AWTKeyStroke的共享实例。
    static AWTKeyStroke
    getAWTKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
    返回给定数字键代码和一组修饰符的AWTKeyStroke的共享实例,指定按下或释放键时键是否被激活。
    static AWTKeyStroke
    getAWTKeyStroke(Character keyChar, int modifiers)
    返回表示指定Character对象和一组修饰符的KEY_TYPED事件的AWTKeyStroke的共享实例。
    static AWTKeyStroke
    解析字符串并返回一个AWTKeyStroke
    static AWTKeyStroke
    返回生成给定KeyEvent的键击的AWTKeyStroke
    final char
    返回此AWTKeyStroke的字符。
    final int
    返回此AWTKeyStroke的数字键代码。
    final int
    返回与此AWTKeyStroke对应的KeyEvent类型。
    final int
    返回此AWTKeyStroke的修饰键。
    int
    返回此对象的数值,可能是唯一的,使其成为哈希表中的索引值的良好选择。
    final boolean
    返回此AWTKeyStroke是否表示键释放。
    protected Object
    返回等于此实例的缓存AWTKeyStroke(或AWTKeyStroke的子类)的实例。
    protected static void
    registerSubclass(Class<?> subclass)
    已弃用。 
    返回显示和标识此对象属性的字符串。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AWTKeyStroke

      protected AWTKeyStroke()
      使用默认值构造AWTKeyStroke。使用的默认值为:
      AWTKeyStroke默认值
      属性 默认值
      键字符 KeyEvent.CHAR_UNDEFINED
      键代码 KeyEvent.VK_UNDEFINED
      修饰符
      按键释放时? false
      AWTKeyStroke不应该由客户端代码构造。请改用getAWTKeyStroke的变体。
      另请参阅:
    • AWTKeyStroke

      protected AWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
      使用指定值构造AWTKeyStroke。不应该由客户端代码构造AWTKeyStroke。请改用getAWTKeyStroke的变体。
      参数:
      keyChar - 键盘键的字符值
      keyCode - 此AWTKeyStroke的键代码
      modifiers - 任何修饰符的按位或组合
      onKeyRelease - 如果此AWTKeyStroke对应于键释放,则为true;否则为false
      另请参阅:
  • Method Details

    • registerSubclass

      @Deprecated protected static void registerSubclass(Class<?> subclass)
      Deprecated.
      该方法没有效果,只是保留在那里以避免引入二进制不兼容性。
      参数:
      subclass - 工厂方法应创建实例的新类
    • getAWTKeyStroke

      public static AWTKeyStroke getAWTKeyStroke(char keyChar)
      返回表示指定字符的KEY_TYPED事件的AWTKeyStroke的共享实例。
      参数:
      keyChar - 键盘键的字符值
      返回:
      该键的AWTKeyStroke对象
    • getAWTKeyStroke

      public static AWTKeyStroke getAWTKeyStroke(Character keyChar, int modifiers)
      返回表示指定Character对象和一组修饰符的KEY_TYPED事件的AWTKeyStroke的共享实例。请注意,第一个参数的类型为Character而不是char。这是为了避免与调用getAWTKeyStroke(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
      下面列出的旧修饰符也可以使用,但它们被映射到_DOWN_修饰符。
      • 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
      也可以使用,但它们被映射到_DOWN_修饰符。由于这些数字都是不同的二的幂,它们的任何组合都是一个整数,其中每个位代表不同的修饰键。使用0指定没有修饰符。
      参数:
      keyChar - 键盘字符的Character对象
      modifiers - 任何修饰符的按位或组合
      返回:
      该键的AWTKeyStroke对象
      抛出:
      IllegalArgumentException - 如果keyCharnull
      另请参阅:
    • getAWTKeyStroke

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

      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
      也可以使用,但它们被映射到_DOWN_修饰符。由于这些数字都是不同的二的幂,它们的任何组合都是一个整数,其中每个位代表不同的修饰键。使用0指定没有修饰符。
      参数:
      keyCode - 指定键盘键的数字代码
      modifiers - 任何修饰符的按位或组合
      onKeyRelease - 如果AWTKeyStroke应表示键释放,则为true;否则为false
      返回:
      该键的AWTKeyStroke对象
      另请参阅:
    • getAWTKeyStroke

      public static AWTKeyStroke getAWTKeyStroke(int keyCode, int modifiers)
      返回给定数字键代码和一组修饰符的AWTKeyStroke的共享实例。返回的AWTKeyStroke将对应于按键。

      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.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
      也可以使用,但它们被映射到_DOWN_修饰符。由于这些数字都是不同的二的幂,它们的任何组合都是一个整数,其中每个位代表不同的修饰键。使用0指定没有修饰符。
      参数:
      keyCode - 一个int,指定键盘按键的数字代码
      modifiers - 任意修饰符的按位或组合
      返回:
      代表该键的AWTKeyStroke对象
      参见:
    • getAWTKeyStrokeForEvent

      public static AWTKeyStroke getAWTKeyStrokeForEvent(KeyEvent anEvent)
      返回生成给定KeyEvent的按键所表示的AWTKeyStroke

      此方法从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 := 长度为1的Unicode字符的字符串。
          pressedReleasedID := (pressed | released) key
          key := KeyEvent键码名称,即在"VK_"之后的名称。
       
      如果未指定typed、pressed或released,则假定为pressed。以下是一些示例:
           "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值
      参见:
    • getKeyCode

      public final int getKeyCode()
      返回此AWTKeyStroke的数字键码。
      返回:
      包含键码值的int
      参见:
    • getModifiers

      public final int getModifiers()
      返回此AWTKeyStroke的修饰键。
      返回:
      包含修饰符的int
      参见:
    • isOnKeyRelease

      public final boolean isOnKeyRelease()
      返回此AWTKeyStroke是否表示按键释放。
      返回:
      如果此AWTKeyStroke表示按键释放,则为true;否则为false
      参见:
    • getKeyEventType

      public final int getKeyEventType()
      返回与此AWTKeyStroke对应的KeyEvent类型。
      返回:
      KeyEvent.KEY_PRESSEDKeyEvent.KEY_TYPEDKeyEvent.KEY_RELEASED
      参见:
    • hashCode

      public int hashCode()
      返回此对象的数值,可能是唯一的,使其成为哈希表中的索引值的良好选择。
      覆盖:
      hashCode 在类 Object
      返回:
      代表此对象的int
      参见:
    • equals

      public final boolean equals(Object anObject)
      如果此对象与指定对象相同,则返回true。
      覆盖:
      equals 在类 Object
      参数:
      anObject - 要将此对象与之比较的对象
      返回:
      如果对象相同,则为true
      参见:
    • toString

      public String toString()
      返回显示和标识此对象属性的字符串。此方法返回的String可以作为参数传递给getAWTKeyStroke(String),以生成等于此按键的按键。
      覆盖:
      toString 在类 Object
      返回:
      此对象的字符串表示
      参见:
    • readResolve

      protected Object readResolve() throws ObjectStreamException
      返回等于此实例的AWTKeyStroke(或AWTKeyStroke的子类)的缓存实例。
      返回:
      与此实例相等的缓存实例
      抛出:
      ObjectStreamException - 如果发生序列化问题