模块 java.desktop
 java.awt

类 AWTKeyStroke

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

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

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

自从:
1.4
参见:
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
    protected
    构造具有默认值的 AWTKeyStroke
    protected
    AWTKeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
    构造具有指定值的 AWTKeyStroke
  • 方法总结

    修饰符和类型
    方法
    描述
    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)
    返回 AWTKeyStroke 的共享实例,它表示指定 Character 对象的 KEY_TYPED 事件和一组修饰符。
    static AWTKeyStroke
    解析一个字符串并返回一个 AWTKeyStroke
    static AWTKeyStroke
    返回一个 AWTKeyStroke 代表生成给定 KeyEvent 的笔划。
    final char
    返回此 AWTKeyStroke 的字符。
    final int
    返回此 AWTKeyStroke 的数字键代码。
    final int
    返回对应于此 AWTKeyStrokeKeyEvent 的类型。
    final int
    返回此 AWTKeyStroke 的修改键。
    int
    返回此对象的可能唯一的数值,使其成为哈希表中索引值的不错选择。
    final boolean
    返回此 AWTKeyStroke 是否表示按键释放。
    protected Object
    返回等于此实例的 AWTKeyStroke(或 AWTKeyStroke 的子类)的缓存实例。
    protected static void
    registerSubclass(Class<?> subclass)
    已弃用。 
    返回显示和标识此对象属性的字符串。

    在类 java.lang.Object 中声明的方法

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 构造方法详细信息

    • 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)
      构造具有指定值的 AWTKeyStrokeAWTKeyStroke 不应由客户端代码构造。请改用 getAWTKeyStroke 的变体。
      参数:
      keyChar - 键盘键的字符值
      keyCode - 这个 AWTKeyStroke 的关键代码
      modifiers - 任何修饰符的按位或组合
      onKeyRelease - true 如果此 AWTKeyStroke 对应于按键释放; false否则
      参见:
  • 方法详情

    • registerSubclass

      @Deprecated protected static void registerSubclass(Class <?> subclass)
      已弃用。
      该方法没有任何效果,只是为了避免引入二进制不兼容而保留下来。
      参数:
      subclass - 工厂方法应为其创建实例的新类
    • 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) 的调用发生冲突。修饰符由以下任意组合组成:
      • 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 - 键盘字符的字符对象
      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 - 指定键盘键的数字代码的 int
      modifiers - 任何修饰符的按位或组合
      onKeyRelease - true 如果 AWTKeyStroke 应该表示按键释放; 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)
      返回一个 AWTKeyStroke 代表生成给定 KeyEvent 的笔划。

      此方法从 KeyTyped 事件获取 keyChar,并从 KeyPressedKeyReleased 事件获取 keyCode。为所有三种类型的 KeyEvent 获得了 KeyEvent 修饰符。

      参数:
      anEvent - 从中获取 AWTKeyStrokeKeyEvent
      返回:
      引发事件的AWTKeyStroke
      抛出:
      NullPointerException - 如果 anEvent 为空
    • 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 的字符。
      返回:
      一个字符值
      参见:
    • getKeyCode

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

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

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

      public final int getKeyEventType()
      返回对应于此 AWTKeyStrokeKeyEvent 的类型。
      返回:
      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 - 将此对象与之比较的对象
      返回:
      如果对象相同则为真
      参见:
    • toString

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

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