Module  java.desktop
软件包  java.awt

Class AWTKeyStroke

  • All Implemented Interfaces:
    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
    另请参见:
    getAWTKeyStroke(char)Serialized Form
    • 构造方法摘要

      构造方法  
      Modifier Constructor 描述
      protected AWTKeyStroke​()
      构造一个具有默认值的 AWTKeyStroke
      protected AWTKeyStroke​(char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
      构造具有指定值的 AWTKeyStroke
    • 构造方法详细信息

      • AWTKeyStroke

        protected AWTKeyStroke​()
        构造一个具有默认值的AWTKeyStroke 使用的默认值为: AWTKeyStroke default values Property Default Value Key Char KeyEvent.CHAR_UNDEFINED Key Code KeyEvent.VK_UNDEFINED Modifiers none On key release? false
        AWTKeyStroke s不应由客户端代码构建。 使用变体getAWTKeyStroke代替。
        另请参见:
        getAWTKeyStroke(char)
      • AWTKeyStroke

        protected AWTKeyStroke​(char keyChar,
                               int keyCode,
                               int modifiers,
                               boolean onKeyRelease)
        构造具有指定值的AWTKeyStroke AWTKeyStroke不应由客户端代码构建。 改用getAWTKeyStroke的变体。
        参数
        keyChar - 键盘键的字符值
        keyCode - 这个 AWTKeyStroke的关键代码
        modifiers - 任何修饰符的按位组合
        onKeyRelease - true如果这AWTKeyStroke对应于密钥释放; 否则为false
        另请参见:
        getAWTKeyStroke(char)
    • 方法详细信息

      • registerSubclass

        @Deprecated
        protected static void registerSubclass​(Class<?> subclass)
        已过时。
        该方法没有任何效果,仅存在以避免引入二进制不兼容性。
        参数
        subclass - 工厂方法应该创建实例的新类
      • getAWTKeyStroke

        public static AWTKeyStroke getAWTKeyStroke​(char keyChar)
        返回一个 AWTKeyStroke的共享实例,表示指定字符的 KEY_TYPED事件。
        参数
        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 - 键盘字符的Character对象
        modifiers - 任何修饰符的按位组合
        结果
        该键的一个 AWTKeyStroke对象
        异常
        IllegalArgumentException - 如果 keyCharnull
        另请参见:
        InputEvent
      • 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对象
        另请参见:
        KeyEventInputEvent
      • 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对象
        另请参见:
        KeyEventInputEvent
      • getAWTKeyStrokeForEvent

        public static AWTKeyStroke getAWTKeyStrokeForEvent​(KeyEvent anEvent)
        返回一个AWTKeyStroke ,表示生成给定的KeyEvent

        该方法从KeyTyped事件获取keyChar,并从KeyPressedKeyReleased事件获取keyCode。 所有三种类型的KeyEvent都可以获得KeyEvent修饰符。

        参数
        anEvent - KeyEvent从中获取 AWTKeyStroke
        结果
        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 ,或格式不正确
      • getModifiers

        public final int getModifiers​()
        返回此 AWTKeyStroke的修饰键。
        结果
        一个包含修饰符的int
        另请参见:
        getAWTKeyStroke(int,int)
      • isOnKeyRelease

        public final boolean isOnKeyRelease​()
        返回这个 AWTKeyStroke是否是一个关键版本。
        结果
        true如果这个AWTKeyStroke代表了一个关键的版本; 否则为false
        另请参见:
        getAWTKeyStroke(int,int,boolean)
      • getKeyEventType

        public final int getKeyEventType​()
        返回对应于此 AWTKeyStrokeKeyEvent的类型。
        结果
        KeyEvent.KEY_PRESSEDKeyEvent.KEY_TYPED ,或 KeyEvent.KEY_RELEASED
        另请参见:
        KeyEvent
      • equals

        public final boolean equals​(Object anObject)
        如果此对象与指定的对象相同,则返回true。
        重写:
        equalsObject
        参数
        anObject - 将该对象与之对比的对象
        结果
        如果对象相同,则为true
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString​()
        返回显示和标识此对象属性的字符串。 String返回的String可以作为参数传递给getAWTKeyStroke(String)以产生等于此关键笔划的关键笔划。
        重写:
        toStringObject
        结果
        该对象的字符串表示形式
        另请参见:
        getAWTKeyStroke(String)
      • readResolve

        protected Object readResolve​()
                              throws ObjectStreamException
        返回的缓存实例 AWTKeyStroke (或子类 AWTKeyStroke ),这是此实例相等。
        结果
        一个与此实例相同的缓存实例
        异常
        ObjectStreamException - 如果发生序列化问题