|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt
类 DefaultKeyboardFocusManager
java.lang.Object java.awt.KeyboardFocusManager java.awt.DefaultKeyboardFocusManager
- 所有已实现的接口:
- KeyEventDispatcher, KeyEventPostProcessor
- 直接已知子类:
- FocusManager
-
public class DefaultKeyboardFocusManager
- extends KeyboardFocusManager
AWT 应用程序的默认 KeyboardFocusManager。通过进行焦点遍历来响应 Component 的焦点遍历键,并使用 Container 的 FocusTraversalPolicy。
请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节,要获得更多信息,请参阅 Focus Specification。
- 从以下版本开始:
- 1.4
- 另请参见:
-
FocusTraversalPolicy
,Component.setFocusTraversalKeys(int, java.util.Set)
,Component.getFocusTraversalKeys(int)
字段摘要 |
---|
从类 java.awt.KeyboardFocusManager 继承的字段 |
---|
BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS |
构造方法摘要 | |
---|---|
DefaultKeyboardFocusManager() |
方法摘要 | |
---|---|
protected void |
dequeueKeyEvents(long after, Component untilFocused) 释放正常指派到当前焦点所有者的所有 KeyEvent,这些 KeyEvent 因为调用了具有相同时间戳和 Component 的 enqueueKeyEvents 而被加入队列。 |
protected void |
discardKeyEvents(Component comp) 放弃因为一次或多次调用具有指定 Component 或其子代之一的 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.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
DefaultKeyboardFocusManager
public DefaultKeyboardFocusManager()
方法详细信息 |
---|
dispatchEvent
public boolean dispatchEvent(AWTEvent e)
-
此方法由 AWT 事件调度程序调用,该调度程序请求当前的 KeyboardFocusManager 以它的名义指派指定的事件。DefaultKeyboardFocusManagers 指派所有 FocusEvents、所有与焦点有关的 WindowEvents 和所有 KeyEvents。根据 KeyboardFocusManager 的焦点所有者、聚焦的窗口和活动窗口的概念来指派这些事件,有时需要重写指定 AWTEvent 的源代码。如果此方法返回
false
,则 AWT 事件调度程序会试着指派事件本身。 -
- 指定者:
-
类
KeyboardFocusManager
中的dispatchEvent
-
- 参数:
-
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,则此方法会将该事件指派到它的目标。此方法随后会将该事件指派到所有已注册的 KeyEventPostProcessor。完成所有这些操作之后,会将该事件传递给 KeyEventPostProcessor 的同位体进行处理。在所有情况下,此方法都将返回
true
,这是因为设计了 DefaultKeyboardFocusManager,因此,在任何情况下,dispatchEvent
和 AWT 事件调度程序都不应该对该事件执行进一步的操作。 -
- 指定者:
-
接口
KeyEventDispatcher
中的dispatchKeyEvent
- 指定者:
-
类
KeyboardFocusManager
中的dispatchKeyEvent
-
- 参数:
-
e
- 要指派的 KeyEvent - 返回:
-
true
- 另请参见:
-
Component.dispatchEvent(java.awt.AWTEvent)
postProcessKeyEvent
public boolean postProcessKeyEvent(KeyEvent e)
-
由
dispatchKeyEvent
调用此方法。它将处理所有未使用的、映射到 AWTMenuShortcut
的 KeyEvent,这是通过使用该事件并激活快捷方式来实现的。 -
- 指定者:
-
接口
KeyEventPostProcessor
中的postProcessKeyEvent
- 指定者:
-
类
KeyboardFocusManager
中的postProcessKeyEvent
-
- 参数:
-
e
- 要进行后处理的 KeyEvent - 返回:
-
true
- 另请参见:
-
dispatchKeyEvent(java.awt.event.KeyEvent)
,MenuShortcut
processKeyEvent
public void processKeyEvent(Component focusedComponent, KeyEvent e)
- 当且仅当该 KeyEvent 表示指定 focusedComponent 的焦点遍历键时,此方法才会启动一个焦点遍历操作。我们期望 focusedComponent 就是当前的焦点所有者,虽然事实不必如此。如果事实并非如此,则仍然要进行焦点遍历,就像 focusedComponent 是焦点所有者一样。
-
- 指定者:
-
类
KeyboardFocusManager
中的processKeyEvent
-
- 参数:
-
focusedComponent
- 作为焦点遍历操作的基础的 Component,如果指定事件表示 Component 的焦点遍历键,则执行焦点遍历操作 -
e
- 可以表示焦点遍历键的事件
enqueueKeyEvents
protected void enqueueKeyEvents(long after, Component untilFocused)
-
延迟对 KeyEvent 的指派,直到指定的 Component 成为焦点所有者。将时间戳迟于指定时间戳的 KeyEvent 加入队列,直到指定的 Component 接收一个 FOCUS_GAINED 事件,或者 AWT 通过调用
dequeueKeyEvents
或discardKeyEvents
取消延迟请求。 -
- 指定者:
-
类
KeyboardFocusManager
中的enqueueKeyEvents
-
- 参数:
-
after
- 当前事件的时间戳,如果当前事件没有时间戳,或 AWT 无法确定当前正在处理哪个事件,则此参数为当前系统时间 -
untilFocused
- 将接收任何挂起 KeyEvent 之前的 FOCUS_GAINED 事件的 Component - 另请参见:
-
dequeueKeyEvents(long, java.awt.Component)
,discardKeyEvents(java.awt.Component)
dequeueKeyEvents
protected void dequeueKeyEvents(long after, Component untilFocused)
-
释放正常指派到当前焦点所有者的所有 KeyEvent,这些 KeyEvent 因为调用了具有相同时间戳和 Component 的
enqueueKeyEvents
而被加入队列。如果给定的时间戳小于零,那么对于具有最早的时间戳(如果有)的给定 Component,应该取消未完成的入队请求。 -
- 指定者:
-
类
KeyboardFocusManager
中的dequeueKeyEvents
-
- 参数:
-
after
- 调用enqueueKeyEvents
期间指定的时间戳,或为小于零的任意值 -
untilFocused
- 调用enqueueKeyEvents
期间指定的 Component - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,discardKeyEvents(java.awt.Component)
discardKeyEvents
protected void discardKeyEvents(Component comp)
-
放弃因为一次或多次调用具有指定 Component 或其子代之一的
enqueueKeyEvents
而加入队列的所有 KeyEvent。 -
- 指定者:
-
类
KeyboardFocusManager
中的discardKeyEvents
-
- 参数:
-
comp
- 一次或多次调用enqueueKeyEvents
期间指定的 Component,或这样一个 Component 的父组件 - 另请参见:
-
enqueueKeyEvents(long, java.awt.Component)
,dequeueKeyEvents(long, java.awt.Component)