java.lang.Object
java.awt.KeyboardFocusManager
java.awt.DefaultKeyboardFocusManager
- 所有已实现的接口:
-
KeyEventDispatcher
,KeyEventPostProcessor
- 直接已知的子类:
-
FocusManager
AWT应用程序的默认KeyboardFocusManager。焦点遍历是响应组件的焦点遍历键以及使用容器的FocusTraversalPolicy来完成的。
- 自从:
- 1.4
- 另请参阅:
-
Field Summary
Fields declared in class java.awt.KeyboardFocusManager
BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
dequeueKeyEvents
(long after, Component untilFocused) 释放因为调用enqueueKeyEvents
而排队的所有与相同时间戳和组件相关的KeyEvents,以便正常分派给当前焦点所有者。protected void
discardKeyEvents
(Component comp) 丢弃因为一个或多个调用enqueueKeyEvents
与指定组件或其后代相关而排队的所有KeyEvents。boolean
此方法由AWT事件分派程序调用,请求当前KeyboardFocusManager代表其分派指定的事件。boolean
如果在分派链中没有其他KeyEventDispatcher分派了KeyEvent,或者没有其他KeyEventDispatchers注册,则由dispatchEvent
调用。void
downFocusCycle
(Container aContainer) 将焦点向下移动一个焦点遍历周期。protected void
enqueueKeyEvents
(long after, Component untilFocused) 延迟分派KeyEvents,直到指定的组件成为焦点所有者。void
focusNextComponent
(Component aComponent) 在aComponent之后,基于FocusTraversalPolicy,将焦点集中在组件上。void
focusPreviousComponent
(Component aComponent) 在aComponent之前,基于FocusTraversalPolicy,将焦点集中在组件上。boolean
此方法将由dispatchKeyEvent
调用。void
processKeyEvent
(Component focusedComponent, KeyEvent e) 如果KeyEvent表示指定focusedComponent的焦点遍历键,则此方法将启动焦点遍历操作。void
upFocusCycle
(Component aComponent) 将焦点向上移动一个焦点遍历周期。Methods declared in class java.awt.KeyboardFocusManager
addKeyEventDispatcher, addKeyEventPostProcessor, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clearFocusOwner, clearGlobalFocusOwner, downFocusCycle, firePropertyChange, fireVetoableChange, focusNextComponent, focusPreviousComponent, getActiveWindow, getCurrentFocusCycleRoot, getCurrentKeyboardFocusManager, getDefaultFocusTraversalKeys, getDefaultFocusTraversalPolicy, getFocusedWindow, getFocusOwner, getGlobalActiveWindow, getGlobalCurrentFocusCycleRoot, getGlobalFocusedWindow, getGlobalFocusOwner, getGlobalPermanentFocusOwner, getKeyEventDispatchers, getKeyEventPostProcessors, getPermanentFocusOwner, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, redispatchEvent, removeKeyEventDispatcher, removeKeyEventPostProcessor, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener, setCurrentKeyboardFocusManager, setDefaultFocusTraversalKeys, setDefaultFocusTraversalPolicy, setGlobalActiveWindow, setGlobalCurrentFocusCycleRoot, setGlobalFocusedWindow, setGlobalFocusOwner, setGlobalPermanentFocusOwner, upFocusCycle
-
Constructor Details
-
DefaultKeyboardFocusManager
public DefaultKeyboardFocusManager()构造一个DefaultKeyboardFocusManager
。
-
-
Method Details
-
dispatchEvent
此方法由AWT事件分派程序调用,请求当前KeyboardFocusManager代表其分派指定的事件。DefaultKeyboardFocusManagers分派所有FocusEvents,所有与焦点相关的WindowEvents以及所有KeyEvents。这些事件是基于KeyboardFocusManager对焦点所有者和焦点和活动窗口的概念进行分派的,有时会覆盖指定AWTEvent的源。如果此方法返回false
,则AWT事件分派程序将尝试自行分派事件。- 指定者:
-
dispatchEvent
在类KeyboardFocusManager
- 参数:
-
e
- 要分派的AWTEvent - 返回:
-
true
如果此方法分派了事件;否则为false
- 另请参阅:
-
dispatchKeyEvent
如果在分派链中没有其他KeyEventDispatcher分派了KeyEvent,或者没有其他KeyEventDispatchers注册,则由dispatchEvent
调用。如果事件尚未被消耗,其目标已启用,并且焦点所有者不为null,则此方法将事件分派给其目标。此方法还将随后将事件分派给所有已注册的KeyEventPostProcessors。完成所有这些操作后,事件将传递给对等体进行处理。在所有情况下,此方法都将返回
true
,因为DefaultKeyboardFocusManager设计为dispatchEvent
或AWT事件分派程序在任何情况下都不应对事件采取进一步操作。- 指定者:
-
dispatchKeyEvent
在接口KeyEventDispatcher
- 指定者:
-
dispatchKeyEvent
在类KeyboardFocusManager
- 参数:
-
e
- 要分派的KeyEvent - 返回:
-
true
- 另请参阅:
-
postProcessKeyEvent
此方法将由dispatchKeyEvent
调用。它将处理任何未消耗的KeyEvent,该事件映射到AWTMenuShortcut
,并消耗事件并激活快捷方式。- 指定者:
-
postProcessKeyEvent
在接口KeyEventPostProcessor
- 指定者:
-
postProcessKeyEvent
在类KeyboardFocusManager
- 参数:
-
e
- 要后处理的KeyEvent - 返回:
-
true
- 另请参阅:
-
processKeyEvent
如果KeyEvent表示指定focusedComponent的焦点遍历键,则此方法将启动焦点遍历操作。预期focusedComponent是当前焦点所有者,尽管这不一定是情况。如果不是,则焦点遍历仍将继续进行,就好像focusedComponent是焦点所有者一样。- 指定者:
-
processKeyEvent
在类KeyboardFocusManager
- 参数:
-
focusedComponent
- 如果指定事件表示组件的焦点遍历键,则作为焦点遍历操作基础的组件 -
e
- 可能表示焦点遍历键的事件
-
enqueueKeyEvents
延迟分派KeyEvents,直到指定的组件成为焦点所有者。具有晚于指定时间戳的时间戳的KeyEvents将排队,直到指定组件接收到FOCUS_GAINED事件,或者AWT通过调用dequeueKeyEvents
或discardKeyEvents
取消延迟请求。- 指定者:
-
enqueueKeyEvents
在类KeyboardFocusManager
- 参数:
-
after
- 当前事件的时间戳,或者当前事件没有时间戳时的当前系统时间,或者AWT无法确定当前正在处理的事件 -
untilFocused
- 在任何待处理KeyEvents之前将接收到FOCUS_GAINED事件的组件 - 另请参阅:
-
dequeueKeyEvents
释放因为调用enqueueKeyEvents
而排队的所有与相同时间戳和组件相关的KeyEvents,以便正常分派给当前焦点所有者。如果给定的时间戳小于零,则应取消具有最旧时间戳的给定组件的未完成排队请求(如果有)。- 指定者:
-
dequeueKeyEvents
在类KeyboardFocusManager
- 参数:
-
after
- 在调用enqueueKeyEvents
时指定的时间戳,或任何值< 0 -
untilFocused
- 在调用enqueueKeyEvents
时指定的组件 - 另请参阅:
-
discardKeyEvents
丢弃因为一个或多个调用enqueueKeyEvents
与指定组件或其后代相关而排队的所有KeyEvents。- 指定者:
-
discardKeyEvents
在类KeyboardFocusManager
- 参数:
-
comp
- 在一个或多个调用中指定的组件enqueueKeyEvents
,或者是这样一个组件的父组件 - 参见:
-
focusPreviousComponent
在aComponent之前聚焦组件,通常基于FocusTraversalPolicy。- 指定者:
-
focusPreviousComponent
在类KeyboardFocusManager
- 参数:
-
aComponent
- 作为焦点遍历操作基础的组件 - 参见:
-
focusNextComponent
在aComponent之后聚焦组件,通常基于FocusTraversalPolicy。- 指定者:
-
focusNextComponent
在类KeyboardFocusManager
- 参数:
-
aComponent
- 作为焦点遍历操作基础的组件 - 参见:
-
upFocusCycle
将焦点上移一个焦点遍历周期。通常,焦点所有者设置为aComponent的焦点循环根,并且当前焦点循环根设置为新焦点所有者的焦点循环根。但是,如果aComponent的焦点循环根是一个窗口,则焦点所有者设置为焦点循环根的默认焦点组件,并且当前焦点循环根保持不变。- 指定者:
-
upFocusCycle
在类KeyboardFocusManager
- 参数:
-
aComponent
- 作为焦点遍历操作基础的组件 - 参见:
-
downFocusCycle
将焦点下移一个焦点遍历周期。如果aContainer是焦点循环根,则焦点所有者设置为aContainer的默认焦点组件,并且当前焦点循环根设置为aContainer。如果aContainer不是焦点循环根,则不会发生焦点遍历操作。- 指定者:
-
downFocusCycle
在类KeyboardFocusManager
- 参数:
-
aContainer
- 作为焦点遍历操作基础的容器 - 参见:
-