- java.lang.Object
-
- java.awt.KeyboardFocusManager
-
- java.awt.DefaultKeyboardFocusManager
-
- All Implemented Interfaces:
-
KeyEventDispatcher
,KeyEventPostProcessor
- 已知直接子类:
-
FocusManager
public class DefaultKeyboardFocusManager extends KeyboardFocusManager
用于AWT应用程序的默认KeyboardFocusManager。 聚焦遍历是针对组件的焦点遍历键,并使用容器的FocusTraversalPolicy进行的。请参阅How to Use the Focus Subsystem , Java教程中的一节,以及有关详细信息的Focus Specification 。
-
-
Field Summary
-
Fields inherited from class java.awt.KeyboardFocusManager
BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS
-
-
构造方法摘要
构造方法 Constructor 描述 DefaultKeyboardFocusManager()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected void
dequeueKeyEvents(long after, Component untilFocused)
发布正常调度到当前焦点所有者的所有KeyEvents,由于调用具有相同时间戳和组件的enqueueKeyEvents
而排队。protected void
discardKeyEvents(Component comp)
丢弃由于一次或enqueueKeyEvents
使用指定的组件或其后代调用enqueueKeyEvents
而排入队列的所有KeyEvent。boolean
dispatchEvent(AWTEvent e)
该方法由AWT事件调度程序调用,请求当前的KeyboardFocusManager代表它发送指定的事件。boolean
dispatchKeyEvent(KeyEvent e)
如果调度程序链中没有其他的KeyEventDispatcher调度了KeyEvent,或者如果没有其他的KeyEventDispatchers被注册,则调用dispatchEvent
。void
downFocusCycle(Container aContainer)
将焦点向下移动一个焦点遍历周期。protected void
enqueueKeyEvents(long after, Component untilFocused)
延迟调度KeyEvents直到指定的Component成为焦点所有者。void
focusNextComponent(Component aComponent)
将组件聚焦在aComponent之后,通常基于FocusTraversalPolicy。void
focusPreviousComponent(Component aComponent)
在组件之前聚焦组件,通常基于FocusTraversalPolicy。boolean
postProcessKeyEvent(KeyEvent e)
此方法将由dispatchKeyEvent
。void
processKeyEvent(Component focusedComponent, KeyEvent e)
当且仅当KeyEvent表示指定的focusComponent的焦点遍历键时,此方法启动焦点遍历操作。void
upFocusCycle(Component aComponent)
将焦点移动到一个焦点遍历周期。-
Methods inherited from 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
-
-
-
-
方法详细信息
-
dispatchEvent
public boolean dispatchEvent(AWTEvent e)
该方法由AWT事件调度程序调用,请求当前的KeyboardFocusManager代表它发送指定的事件。 DefaultKeyboardFocusManagers调度所有FocusEvents,与焦点相关的所有WindowEvent和所有KeyEvents。 这些事件是基于KeyboardFocusManager对焦点所有者和聚焦和活动Windows的概念进行调度的,有时会覆盖指定AWTEvent的来源。 如果此方法返回false
,则AWT事件调度程序将尝试调度事件本身。- Specified by:
-
dispatchEvent
中的KeyboardFocusManager
- 参数
-
e
- 要发送的AWTEvent - 结果
-
true
如果此方法调度事件; 否则为false
- 另请参见:
-
KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)
,KeyboardFocusManager.dispatchKeyEvent(java.awt.event.KeyEvent)
-
dispatchKeyEvent
public boolean dispatchKeyEvent(KeyEvent e)
如果调度程序链中没有其他的KeyEventDispatcher调度了KeyEvent,或者如果没有其他的KeyEventDispatchers被注册,则调用dispatchEvent
。 如果事件尚未消耗,则其目标将被启用,并且焦点所有者不为空,此方法将事件分派到其目标。 此方法还将随后将事件发送到所有注册的KeyEventPostProcessors。 所有这些操作完成后,事件将传递给对等体进行处理。在所有情况下,此方法返回
true
,因为DefaultKeyboardFocusManager旨在使dispatchEvent
和AWT事件调度程序都不会在任何情况下对事件采取进一步措施。- Specified by:
-
dispatchKeyEvent
在接口KeyEventDispatcher
- Specified by:
-
dispatchKeyEvent
在KeyboardFocusManager
- 参数
-
e
- 要发送的KeyEvent - 结果
-
true
- 另请参见:
-
Component.dispatchEvent(java.awt.AWTEvent)
-
postProcessKeyEvent
public boolean postProcessKeyEvent(KeyEvent e)
此方法将由dispatchKeyEvent
。 它将通过消耗事件并激活快捷方式来处理映射到AWTMenuShortcut
的任何未消息的KeyEvents。- Specified by:
-
postProcessKeyEvent
在接口KeyEventPostProcessor
- Specified by:
-
postProcessKeyEvent
中的KeyboardFocusManager
- 参数
-
e
- 后期处理的KeyEvent - 结果
-
true
- 另请参见:
-
dispatchKeyEvent(java.awt.event.KeyEvent)
,MenuShortcut
-
processKeyEvent
public void processKeyEvent(Component focusedComponent, KeyEvent e)
当且仅当KeyEvent表示指定的focusComponent的焦点遍历键时,此方法启动焦点遍历操作。 预计focusComponent是当前的焦点所有者,尽管不一定是这样。 如果不是,焦点遍历将继续进行,就像focusedComponent是焦点所有者一样。- Specified by:
-
processKeyEvent
在KeyboardFocusManager
- 参数
-
focusedComponent
- 作为聚焦遍历操作的基础的组件,如果指定的事件表示组件的焦点遍历键 -
e
- 可能代表焦点遍历键的事件
-
enqueueKeyEvents
protected void enqueueKeyEvents(long after, Component untilFocused)
延迟调度KeyEvents直到指定的Component成为焦点所有者。 具有晚于指定时间戳的时间戳的KeyEvent将被排入队列,直到指定的组件接收到FOCUS_GAINED事件,或AWT通过调用dequeueKeyEvents
或discardKeyEvents
取消延迟请求。- Specified by:
-
enqueueKeyEvents
在KeyboardFocusManager
- 参数
-
after
- 当前事件的时间戳或当前事件没有时间戳的当前系统时间,或者AWT无法确定当前处理哪个事件 -
untilFocused
- 在任何待处理的KeyEvent之前将收到FOCUS_GAINED事件的组件 - 另请参见:
-
dequeueKeyEvents(long, java.awt.Component)
,discardKeyEvents(java.awt.Component)
-
dequeueKeyEvents
protected void dequeueKeyEvents(long after, Component untilFocused)
发布正常调度到当前焦点所有者所有由于调用具有相同时间戳和组件的enqueueKeyEvents
KeyEvents。 如果给定的时间戳小于零,则应取消给具有最早时间戳(如果有)的给定组件的未完成的入队请求。- Specified by:
-
dequeueKeyEvents
中的KeyboardFocusManager
- 参数
-
after
- 在调用enqueueKeyEvents
指定的时间戳,或任何值<0 -
untilFocused
- 在调用enqueueKeyEvents
指定的组件 - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,discardKeyEvents(java.awt.Component)
-
discardKeyEvents
protected void discardKeyEvents(Component comp)
丢弃由于一个或多个调用enqueueKeyEvents
与指定的组件或其后代排入队列的所有KeyEvent。- Specified by:
-
discardKeyEvents
中的KeyboardFocusManager
- 参数
-
comp
- 在一个或多个调用enqueueKeyEvents
指定的组件,或此类组件的父级 - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,dequeueKeyEvents(long, java.awt.Component)
-
focusPreviousComponent
public void focusPreviousComponent(Component aComponent)
在组件之前聚焦组件,通常基于FocusTraversalPolicy。- Specified by:
-
focusPreviousComponent
中的KeyboardFocusManager
- 参数
-
aComponent
- 作为焦点遍历操作的基础的组件 - 另请参见:
-
FocusTraversalPolicy
,Component.transferFocusBackward()
-
focusNextComponent
public void focusNextComponent(Component aComponent)
将组件聚焦在aComponent之后,通常基于FocusTraversalPolicy。- Specified by:
-
focusNextComponent
在KeyboardFocusManager
- 参数
-
aComponent
- 作为焦点遍历操作的基础的组件 - 另请参见:
-
FocusTraversalPolicy
,Component.transferFocus()
-
upFocusCycle
public void upFocusCycle(Component aComponent)
将焦点移动到一个焦点遍历周期。 通常,焦点所有者设置为aComponent的焦点循环根,并将当前焦点循环根设置为新焦点所有者的焦点循环根。 然而,如果aComponent的焦点循环根是Window,那么焦点所有者将被设置为焦点循环根的默认组件以进行对焦,并且当前焦点循环根不变。- Specified by:
-
upFocusCycle
在KeyboardFocusManager
- 参数
-
aComponent
- 作为焦点遍历操作的基础的组件 - 另请参见:
-
Component.transferFocusUpCycle()
-
downFocusCycle
public void downFocusCycle(Container aContainer)
将焦点向下移动一个焦点遍历周期。 如果aContainer是焦点循环根,那么焦点所有者将设置为aContainer的默认组件进行对焦,并将当前焦点循环根设置为aContainer。 如果aContainer不是焦点循环根,则不会发生焦点遍历操作。- Specified by:
-
downFocusCycle
在KeyboardFocusManager
- 参数
-
aContainer
- 作为焦点遍历操作的基础的容器 - 另请参见:
-
Container.transferFocusDownCycle()
-
-