Module  java.desktop
软件包  java.awt

Interface KeyEventPostProcessor

  • 所有已知实现类:
    DefaultFocusManagerDefaultKeyboardFocusManagerFocusManagerKeyboardFocusManager
    Functional Interface:
    这是一个功能界面,因此可以用作lambda表达式或方法引用的赋值对象。


    @FunctionalInterface
    public interface KeyEventPostProcessor
    KeyEventPostProcessor与所有未消耗的KeyEvents的最终分辨率中的当前KeyboardFocusManager配合使用。 在当前的KeyboardFocusManager注册的KeyEventPostProcessors将在KeyEvents被派发到其目标并由其处理后接收KeyEvents。 否则将被丢弃的KeyEvents,因为应用程序当前拥有焦点的组件也将被转发到注册的KeyEventPostProcessors。 这将允许应用程序实现需要全局KeyEvent后处理的功能,如菜单快捷方式。

    请注意,KeyboardFocusManager本身实现了KeyEventPostProcessor。 默认情况下,当前的KeyboardFocusManager将是链中最终的KeyEventPostProcessor。 当前的KeyboardFocusManager不能被完全注销为KeyEventPostProcessor。 但是,如果KeyEventPostProcessor报告不需要对KeyEvent进行进一步的后处理,则AWT将会考虑该事件的完全处理,并且不会对该事件采取任何其他操作。 (虽然客户端代码可以将当前的KeyboardFocusManager注册为KeyEventPostProcessor一次或多次,但这通常是不需要的,不推荐使用。)

    从以下版本开始:
    1.4
    另请参见:
    KeyboardFocusManager.addKeyEventPostProcessor(java.awt.KeyEventPostProcessor)KeyboardFocusManager.removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      boolean postProcessKeyEvent​(KeyEvent e)
      该方法由当前的KeyboardFocusManager调用,请求该KeyEventPostProcessor执行任何必要的后处理,该后处理应该是KeyEvent的最终解决方案的一部分。
    • 方法详细信息

      • postProcessKeyEvent

        boolean postProcessKeyEvent​(KeyEvent e)
        该方法由当前的KeyboardFocusManager调用,请求该KeyEventPostProcessor执行任何必要的后处理,该后处理应该是KeyEvent的最终解决方案的一部分。 在调用此方法时,通常KeyEvent已经被调度到其目标并由其处理。 但是,如果应用程序中没有组件当前拥有焦点,则KeyEvent尚未分派到任何组件。 通常情况下,KeyEvent后处理将用于实现需要全局KeyEvent后处理的功能,例如菜单快捷方式。 请注意,如果KeyEventPostProcessor希望分派KeyEvent,则它必须使用redispatchEvent来防止AWT递归地请求该KeyEventPostProcessor再次执行事件的后处理。

        如果此方法的实现返回false ,则将KeyEvent传递给链中的下一个KeyEventPostProcessor,以当前的KeyboardFocusManager结尾。 如果一个实现返回true ,则假定KeyEvent已被完全处理(尽管不需要这样),并且AWT将不会对KeyEvent采取进一步的操作。 如果一个实现消耗了KeyEvent但是返回false ,那么消耗的事件仍将被传递给链中的下一个KeyEventPostProcessor。 在执行任何后处理KeyEvent之前,开发人员必须检查KeyEvent是否已被使用。 默认情况下,当前的KeyboardFocusManager将不执行后处理以响应消耗的KeyEvent。

        参数
        e - 后期处理的KeyEvent
        结果
        true如果AWT不应该对KeyEvent采取进一步行动; 否则为false
        另请参见:
        KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)