Module  javafx.graphics
软件包  javafx.scene.input

Class KeyEvent

  • All Implemented Interfaces:
    SerializableCloneable


    public final class KeyEvent
    extends InputEvent
    一个事件,表示击键发生在一个Node

    当按下,释放或键入键时,会生成此事件。 这取决于它被传递给事件的类型onKeyPressedonKeyTyped或者onKeyReleased功能。

    “键型”事件较高级,通常不依赖于平台或键盘布局。 它们在输入Unicode字符时生成,并且是查找字符输入的首选方式。 在最简单的情况下,键型事件由一个按键(例如'a')产生。 然而,通常,字符由一系列按键(例如,SHIFT +'a')产生,并且从按键事件到键类型事件的映射可以是多对一或多对多。 主要版本通常不需要生成键入类型的事件,但有些情况下键盘事件不会生成,直到键被释放(例如,通过Windows中的Alt-Numpad方法输入ASCII序列)。 不生成不产生Unicode字符的键(例如,操作键,修饰键等)的键类型事件。

    character变量始终包含有效的Unicode字符或CHAR_UNDEFINED。 字符输入由键类型事件报告; 按键和按键释放事件不一定与字符输入相关联。 因此, character变量保证仅对键类型事件有意义。

    对于按键和键释放事件, code变量包含事件的关键代码。 对于键类型事件, code变量始终包含KeyCode.UNDEFINED

    “按键”和“按键释放”事件较低级别,取决于平台和键盘布局。 它们是按键或释放键生成的,是找出不产生字符输入的键的唯一方法(例如,操作键,修改键等)。 按下或释放的键由代码变量指示,其中包含虚拟键代码。

    对于触发上下文菜单,请参阅ContextMenuEvent

    从以下版本开始:
    JavaFX 2.0
    另请参见:
    Serialized Form
    • 字段详细信息

      • ANY

        public static final EventType<KeyEvent> ANY
        所有关键事件类型的常用超类型。
      • KEY_PRESSED

        public static final EventType<KeyEvent> KEY_PRESSED
        当按下键时,会发生此事件。
      • KEY_RELEASED

        public static final EventType<KeyEvent> KEY_RELEASED
        当一个键被释放时,会发生这种情况。
      • KEY_TYPED

        public static final EventType<KeyEvent> KEY_TYPED
        当字符生成键被键入(按下并释放)时,会发生此事件。 该事件包含character字段包含的类型字符串, codetext字段不被使用。
      • CHAR_UNDEFINED

        public static final String CHAR_UNDEFINED
        KEY_PRESSED和KEY_RELEASED事件不映射到一个有效的Unicode字符使用它作为keyChar值。
    • 构造方法详细信息

      • KeyEvent

        public KeyEvent​(Object source,
                        EventTarget target,
                        EventType<KeyEvent> eventType,
                        String character,
                        String text,
                        KeyCode code,
                        boolean shiftDown,
                        boolean controlDown,
                        boolean altDown,
                        boolean metaDown)
        从指定的参数构造一个新的 KeyEvent事件。
        参数
        source - 事件的来源。 可以为null。
        target - 事件的目标。 可以为null。
        eventType - 事件的类型。
        character - 与事件关联的字符或序列
        text - 描述键码的字符串
        code - 整数键码
        shiftDown - 如果按shift键, shiftDown true。
        controlDown - 如果按下控制修饰符, controlDown true。
        altDown - 如果按Alt修饰符, altDown true。
        metaDown - 如果按下元修饰符, metaDown true。
        从以下版本开始:
        JavaFX 8.0
      • KeyEvent

        public KeyEvent​(EventType<KeyEvent> eventType,
                        String character,
                        String text,
                        KeyCode code,
                        boolean shiftDown,
                        boolean controlDown,
                        boolean altDown,
                        boolean metaDown)
        从指定的参数构建一个新的 KeyEvent事件,其中包含一个 null源和目标。
        参数
        eventType - 事件的类型。
        character - 与事件关联的字符或字符序列
        text - 描述密钥代码的字符串
        code - 整数关键码
        shiftDown - 如果按shift键, shiftDown true。
        controlDown - 如果按下控制修饰符, controlDown true。
        altDown - 如果按住alt修饰符, altDown true。
        metaDown - 如果按下了元修饰符, metaDown true。
        从以下版本开始:
        JavaFX 8.0
    • 方法详细信息

      • getCharacter

        public final String getCharacter​()
        与键类型事件相关联的Unicode字符或字符序列。 如果密钥从基本多语言平面外部产生单个Unicode字符,则需要由Java中的相应代理对编码,或者如果密钥产生多个Unicode字符本身,则包含多个元素。

        例如, character将通过按SHIFT +'a'生成的键类型事件的值为“A”。 对于按键和按键释放事件, character始终为CHAR_UNDEFINED

        结果
        与键类型事件相关联的Unicode字符
      • getText

        public final String getText​()
        描述按键和键释放事件的键代码的字符串,如“HOME”,“F1”或“A”。 对于键类型的事件, text始终为空字符串。
        结果
        描述键码的字符串
      • getCode

        public final KeyCode getCode​()
        与该键中的键相关的键代码按下或键释放事件。 对于键型事件, code始终为KeyCode.UNDEFINED
        结果
        与此事件中的键相关的键代码, KeyCode.UNDEFINED用于键类型事件
      • isShiftDown

        public final boolean isShiftDown​()
        返回此事件的Shift修饰符是否关闭。
        结果
        Shift修饰符是否关闭此事件。
      • isControlDown

        public final boolean isControlDown​()
        返回此修改器是否关闭此事件。
        结果
        此修改器是否关闭此事件。
      • isAltDown

        public final boolean isAltDown​()
        返回此事件的Alt修饰符是否关闭。
        结果
        此修改器是否关闭此事件。
      • isMetaDown

        public final boolean isMetaDown​()
        返回Meta修饰符在此事件上是否关闭。
        结果
        Meta修饰符是否关闭此事件。
      • isShortcutDown

        public final boolean isShortcutDown​()
        返回主机平台常用快捷方式修饰符是否在此事件上关闭。 这个常用的快捷键修饰符是修改器键,通常用于主机平台上的快捷方式。 它例如control在Windows和meta在Mac(命令键)。
        结果
        true如果快捷键修饰符关闭,否则为 false
      • toString

        public String toString​()
        返回此 KeyEvent对象的字符串表示形式。
        重写:
        toStringEventObject
        结果
        这个 KeyEvent对象的字符串表示形式。
      • copyFor

        public KeyEvent copyFor​(Object newSource,
                                EventTarget newTarget)
        描述从类别复制: Event
        使用指定的事件源和目标创建并返回此事件的副本。 如果源或目标设置为null ,它将被替换为NULL_SOURCE_TARGET值。
        重写:
        copyForEvent
        参数
        newSource - 复制事件的新来源
        newTarget - 复制事件的新目标
        结果
        事件副本与新的源和目标
      • copyFor

        public KeyEvent copyFor​(Object source,
                                EventTarget target,
                                EventType<KeyEvent> type)
        用给定的字段替换给定事件的副本。
        参数
        source - 复制事件的新来源
        target - 复制事件的新目标
        type - 新事件类型。
        结果
        事件副本与字段被替换
        从以下版本开始:
        JavaFX 8.0
      • getEventType

        public EventType<KeyEvent> getEventType​()
        描述从类别复制: Event
        获取此事件的事件类型。 相同的Event类的对象可以有不同的事件类型。 这些事件类型进一步指定发生什么样的事件。
        重写:
        getEventTypeInputEvent
        结果
        the event type