- java.lang.Object
-
- java.awt.KeyboardFocusManager
-
- java.awt.DefaultKeyboardFocusManager
-
- 实现的所有接口
-
KeyEventDispatcher
,KeyEventPostProcessor
- 已知直接子类:
-
FocusManager
public class DefaultKeyboardFocusManager extends KeyboardFocusManager
AWT应用程序的默认KeyboardFocusManager。 焦点遍历是为了响应Component的焦点遍历键,并使用Container的FocusTraversalPolicy完成的。请参阅How to Use the Focus Subsystem ,在Java教程一节,并Focus Specification获取更多信息。
-
-
构造方法摘要
构造方法 构造器 描述 DefaultKeyboardFocusManager()
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected void
dequeueKeyEvents(long after, Component untilFocused)
释放正常调度到当前焦点所有者的所有KeyEvent,这些KeyEvent由于调用具有相同时间戳和Component的enqueueKeyEvents
。protected void
discardKeyEvents(Component comp)
丢弃由于使用指定的Component或其后代之一对enqueueKeyEvents
进行一次或多次调用enqueueKeyEvents
所有KeyEvent。boolean
dispatchEvent(AWTEvent e)
AWT事件调度程序调用此方法,请求当前KeyboardFocusManager代表它调度指定的事件。boolean
dispatchKeyEvent(KeyEvent e)
如果调度程序链中没有其他KeyEventDispatcher调度KeyEvent,或者没有注册其他KeyEventDispatcher,则由dispatchEvent
调用。void
downFocusCycle(Container aContainer)
将焦点向下移动一个焦点遍历循环。protected void
enqueueKeyEvents(long after, Component untilFocused)
延迟调度KeyEvent,直到指定的Component成为焦点所有者。void
focusNextComponent(Component aComponent)
在aComponent之后聚焦Component,通常基于FocusTraversalPolicy。void
focusPreviousComponent(Component aComponent)
在aComponent之前聚焦Component,通常基于FocusTraversalPolicy。boolean
postProcessKeyEvent(KeyEvent e)
该方法将由dispatchKeyEvent
。void
processKeyEvent(Component focusedComponent, KeyEvent e)
当且仅当KeyEvent表示指定的focusedComponent的焦点遍历键时,此方法才启动焦点遍历操作。void
upFocusCycle(Component aComponent)
将焦点向上移动一个焦点遍历循环。-
声明方法的类 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以及所有KeyEvent。 这些事件是根据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,或者没有注册其他KeyEventDispatcher,则由dispatchEvent
调用。 如果尚未使用该事件,则启用其目标,并且焦点所有者不为null,此方法将事件调度到其目标。 此方法还将随后将事件分派给所有已注册的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
的任何未消耗的KeyEvent。- 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表示指定的focusedComponent的焦点遍历键时,此方法才启动焦点遍历操作。 预计focusedComponent是当前的焦点所有者,尽管不一定是这种情况。 如果不是,焦点遍历将继续进行,就好像focusedComponent是焦点所有者一样。- Specified by:
-
processKeyEvent
在类KeyboardFocusManager
- 参数
-
focusedComponent
- 如果指定的事件表示组件的焦点遍历键,则该组件是焦点遍历操作的基础 -
e
- 可能表示焦点遍历键的事件
-
enqueueKeyEvents
protected void enqueueKeyEvents(long after, Component untilFocused)
延迟调度KeyEvent,直到指定的Component成为焦点所有者。 时间戳晚于指定时间戳的KeyEvent将排队,直到指定的Component收到FOCUS_GAINED事件,或者AWT通过调用dequeueKeyEvents
或discardKeyEvents
取消延迟请求。- 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:
-
dequeueKeyEvents
类KeyboardFocusManager
- 参数
-
after
-调用中指定的时间戳enqueueKeyEvents
,或者任何值<0 -
untilFocused
- 在对enqueueKeyEvents
的调用中指定的组件 - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,discardKeyEvents(java.awt.Component)
-
discardKeyEvents
protected void discardKeyEvents(Component comp)
丢弃由于使用指定的Component或其后代之一对enqueueKeyEvents
进行一次或多次调用enqueueKeyEvents
所有KeyEvent。- Specified by:
-
discardKeyEvents
类KeyboardFocusManager
- 参数
-
comp
- 在对enqueueKeyEvents
一次或多次调用中指定的组件,或此类组件的父级 - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,dequeueKeyEvents(long, java.awt.Component)
-
focusPreviousComponent
public void focusPreviousComponent(Component aComponent)
在aComponent之前聚焦Component,通常基于FocusTraversalPolicy。- Specified by:
-
focusPreviousComponent
在类KeyboardFocusManager
- 参数
-
aComponent
- 作为焦点遍历操作基础的组件 - 另请参见:
-
FocusTraversalPolicy
,Component.transferFocusBackward()
-
focusNextComponent
public void focusNextComponent(Component aComponent)
在aComponent之后聚焦Component,通常基于FocusTraversalPolicy。- Specified by:
-
focusNextComponent
在类KeyboardFocusManager
- 参数
-
aComponent
- 作为焦点遍历操作基础的Component - 另请参见:
-
FocusTraversalPolicy
,Component.transferFocus()
-
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()
-
-