模块  java.desktop
软件包  java.awt

Class DefaultKeyboardFocusManager

    • 构造方法详细信息

      • DefaultKeyboardFocusManager

        public DefaultKeyboardFocusManager()
    • 方法详细信息

      • dispatchKeyEvent

        public boolean dispatchKeyEvent​(KeyEvent e)
        如果调度程序链中没有其他KeyEventDispatcher调度KeyEvent,或者没有注册其他KeyEventDispatcher,则由dispatchEvent调用。 如果尚未使用该事件,则启用其目标,并且焦点所有者不为null,此方法将事件调度到其目标。 此方法还将随后将事件分派给所有已注册的KeyEventPostProcessors。 完成所有这些操作后,事件将传递给对等方进行处理。

        在所有情况下,此方法返回true ,因为DefaultKeyboardFocusManager的设计使得dispatchEvent和AWT事件调度程序都不应该在任何情况下对事件采取进一步操作。

        Specified by:
        dispatchKeyEvent在界面 KeyEventDispatcher
        Specified by:
        dispatchKeyEvent在类 KeyboardFocusManager
        参数
        e - 要分派的KeyEvent
        结果
        true
        另请参见:
        Component.dispatchEvent(java.awt.AWTEvent)
      • processKeyEvent

        public void processKeyEvent​(Component focusedComponent,
                                    KeyEvent e)
        当且仅当KeyEvent表示指定的focusedComponent的焦点遍历键时,此方法才启动焦点遍历操作。 预计focusedComponent是当前的焦点所有者,尽管不一定是这种情况。 如果不是,焦点遍历将继续进行,就好像focusedComponent是焦点所有者一样。
        Specified by:
        processKeyEvent在类 KeyboardFocusManager
        参数
        focusedComponent - 如果指定的事件表示组件的焦点遍历键,则该组件是焦点遍历操作的基础
        e - 可能表示焦点遍历键的事件
      • enqueueKeyEvents

        protected void enqueueKeyEvents​(long after,
                                        Component untilFocused)
        延迟调度KeyEvent,直到指定的Component成为焦点所有者。 时间戳晚于指定时间戳的KeyEvent将排队,直到指定的Component收到FOCUS_GAINED事件,或者AWT通过调用dequeueKeyEventsdiscardKeyEvents取消延迟请求。
        Specified by:
        enqueueKeyEvents在类 KeyboardFocusManager
        参数
        after - 当前事件的时间戳,如果当前事件没有时间戳,则当前系统时间,或者AWT无法确定当前正在处理哪个事件
        untilFocused - 将在任何挂起的KeyEvents之前接收FOCUS_GAINED事件的组件
        另请参见:
        dequeueKeyEvents(long, java.awt.Component)discardKeyEvents(java.awt.Component)
      • dequeueKeyEvents

        protected void dequeueKeyEvents​(long after,
                                        Component untilFocused)
        释放正常调度到当前焦点所有者的所有KeyEvent,这些KeyEvent因为使用相同的时间戳和Component调用enqueueKeyEvents 如果给定的时间戳小于零,则应取消具有最早时间戳(如果有)的给定组件的未完成的入队请求。
        Specified by:
        dequeueKeyEventsKeyboardFocusManager
        参数
        after -调用中指定的时间戳 enqueueKeyEvents ,或者任何值<0
        untilFocused - 在对 enqueueKeyEvents的调用中指定的组件
        另请参见:
        enqueueKeyEvents(long, java.awt.Component)discardKeyEvents(java.awt.Component)
      • upFocusCycle

        public void upFocusCycle​(Component aComponent)
        将焦点向上移动一个焦点遍历循环。 通常,焦点所有者设置为aComponent的焦点循环根,并且当前焦点循环根设置为新焦点所有者的焦点循环根。 但是,如果aComponent的焦点循环根是一个Window,则焦点所有者将设置为焦点循环根的默认Component以进行焦点,并且当前焦点循环根不变。
        Specified by:
        upFocusCycle在类 KeyboardFocusManager
        参数
        aComponent - 作为焦点遍历操作基础的Component
        另请参见:
        Component.transferFocusUpCycle()
      • downFocusCycle

        public void downFocusCycle​(Container aContainer)
        将焦点向下移动一个焦点遍历循环。 如果aContainer是焦点循环根,则焦点所有者将设置为aContainer的默认Component以进行焦点,并将当前焦点循环根设置为aContainer。 如果aContainer不是焦点循环根,则不会发生焦点遍历操作。
        Specified by:
        downFocusCycle在类 KeyboardFocusManager
        参数
        aContainer - 作为焦点遍历操作基础的Container
        另请参见:
        Container.transferFocusDownCycle()