|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt
类 KeyboardFocusManager
java.lang.Object java.awt.KeyboardFocusManager
- 所有已实现的接口:
- KeyEventDispatcher, KeyEventPostProcessor
- 直接已知子类:
- DefaultKeyboardFocusManager
-
public abstract class KeyboardFocusManager
- extends Object
- implements KeyEventDispatcher, KeyEventPostProcessor
KeyboardFocusManager 负责管理激活状态的聚焦 Window 和当前焦点所有者。焦点所有者的定义是:应用程序中的 Component,通常接收用户生成的所有 KeyEvent。聚焦 Window 指本身就是(或者包含)焦点所有者的 Window。只有 Frame 或 Dialog 才能成为活动 Window。本机的窗口操作系统可能使用特殊装饰表示活动 Window 或其子窗口,如突出显示标题栏。活动 Window 要么是聚焦 Window,要么是作为聚焦 Window 所有者的第一个 Frame 或 Dialog。
KeyboardFocusManager 既是一个用于查询焦点所有者并启动焦点更改的客户端代码的集中位置,同时又是一个用于所有 FocusEvent、与焦点相关的 WindowEvent 和 KeyEvent 的调度程序。
有些浏览器将使用不同代码基数的 applet 划分为单独的上下文,并在这些上下文之间建墙分隔。在此方案中,每个上下文都将具有一个 KeyboardFocusManager。其他浏览器将所有 applet 置于同一个上下文中,这意味着仅存在一个用于所有 applet 的全局 KeyboardFocusManager。此行为是依赖于实现的。请参考浏览器文档以获取更多信息。然而,不管可能有多少上下文,每个 ClassLoader 的焦点所有者、聚焦 Window 或活动 Window 只能有一个。
请参见 How to Use the Focus Subsystem(The Java Tutorial 的一节)和 Focus Specification 以获取更多信息。
- 从以下版本开始:
- 1.4
- 另请参见:
-
Window
,Frame
,Dialog
,FocusEvent
,WindowEvent
,KeyEvent
字段摘要 | |
---|---|
static int |
BACKWARD_TRAVERSAL_KEYS Backward 焦点遍历键的标识符。 |
static int |
DOWN_CYCLE_TRAVERSAL_KEYS Down Cycle 焦点遍历键的标识符。 |
static int |
FORWARD_TRAVERSAL_KEYS Forward 焦点遍历键的标识符。 |
static int |
UP_CYCLE_TRAVERSAL_KEYS Up Cycle 焦点遍历键的标识符。 |
构造方法摘要 | |
---|---|
KeyboardFocusManager() 初始化 KeyboardFocusManager。 |
方法摘要 | |
---|---|
void |
addKeyEventDispatcher(KeyEventDispatcher dispatcher) 将 KeyEventDispatcher 添加到此 KeyboardFocusManager 的调度程序链中。 |
void |
addKeyEventPostProcessor(KeyEventPostProcessor processor) 将 KeyEventPostProcessor 添加到此 KeyboardFocusManager 的后处理器链中。 |
void |
addPropertyChangeListener(PropertyChangeListener listener) 将 PropertyChangeListener 添加到侦听器列表。 |
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener) 将 PropertyChangeListener 添加到特定属性的侦听器列表。 |
void |
addVetoableChangeListener(String propertyName, VetoableChangeListener listener) 将 VetoableChangeListener 添加到特定属性的侦听器列表。 |
void |
addVetoableChangeListener(VetoableChangeListener listener) 将 VetoableChangeListener 添加到侦听器列表。 |
void |
clearGlobalFocusOwner() 在 Java 和本机级别清除全局焦点所有者。 |
protected abstract void |
dequeueKeyEvents(long after, Component untilFocused) 由 AWT 调用以通知 KeyboardFocusManager 应该取消延迟指派 KeyEvent。 |
protected abstract void |
discardKeyEvents(Component comp) 由 AWT 调用以通知 KeyboardFocusManager 应该取消延迟指派 KeyEvent。 |
abstract boolean |
dispatchEvent(AWTEvent e) AWT 事件调度程序可以调用此方法,请求当前的 KeyboardFocusManager 为其指派指定的事件。 |
abstract boolean |
dispatchKeyEvent(KeyEvent e) 通常情况下,如果该指派程序链中的其他 KeyEventDispatcher 没有指派 KeyEvent 或者没有注册其他 KeyEventDispatcher,则 dispatchEvent 将调用此方法。 |
void |
downFocusCycle() 当且仅当当前焦点所有者是一个作为焦点循环根的 Container 时,从当前焦点所有者将焦点下移一个焦点遍历循环。 |
abstract void |
downFocusCycle(Container aContainer) 将焦点下移一个焦点遍历循环。 |
protected abstract void |
enqueueKeyEvents(long after, Component untilFocused) 在指定的 Component 成为焦点所有者以前由 AWT 调用,以通知 KeyboardFocusManager 延迟指派 KeyEvent。 |
protected void |
firePropertyChange(String propertyName, Object oldValue, Object newValue) 激发 PropertyChangeEvent 以响应绑定属性中的更改。 |
protected void |
fireVetoableChange(String propertyName, Object oldValue, Object newValue) 激发 PropertyChangeEvent 以响应可否决属性中的更改。 |
void |
focusNextComponent() 聚焦当前焦点所有者之后的 Component。 |
abstract void |
focusNextComponent(Component aComponent) 聚焦 aComponent 之后的 Component,通常基于 FocusTraversalPolicy。 |
void |
focusPreviousComponent() 聚焦当前焦点所有者之前的 Component。 |
abstract void |
focusPreviousComponent(Component aComponent) 聚焦 aComponent 之前的 Component,通常基于 FocusTraversalPolicy。 |
Window |
getActiveWindow() 如果活动 Window 与调用线程位于同一个上下文中,则返回活动 Window。 |
Container |
getCurrentFocusCycleRoot() 如果当前焦点循环根与调用线程位于相同的上下文中,则返回当前焦点循环根。 |
static KeyboardFocusManager |
getCurrentKeyboardFocusManager() 返回调用线程上下文的当前 KeyboardFocusManager 实例。 |
Set<AWTKeyStroke> |
getDefaultFocusTraversalKeys(int id) 返回给定遍历操作的默认焦点遍历键的 Set。 |
FocusTraversalPolicy |
getDefaultFocusTraversalPolicy() 返回默认 FocusTraversalPolicy。 |
Window |
getFocusedWindow() 如果聚焦窗口与调用线程位于同一个上下文中,则返回聚焦窗口。 |
Component |
getFocusOwner() 如果焦点所有者与调用线程位于同一个上下文中,则返回该焦点所有者。 |
protected Window |
getGlobalActiveWindow() 返回活动 Window,即使调用线程处于活动 Window 之外的上下文中。 |
protected Container |
getGlobalCurrentFocusCycleRoot() 返回当前焦点循环根,即使调用线程处于当前焦点循环根之外的上下文中。 |
protected Window |
getGlobalFocusedWindow() 返回聚焦 Window,即使调用线程处于聚焦 Window 之外的上下文中。 |
protected Component |
getGlobalFocusOwner() 返回焦点所有者,即使调用线程处于焦点所有者之外的上下文中。 |
protected Component |
getGlobalPermanentFocusOwner() 返回持久焦点所有者,即使调用线程处于该持久焦点所有者之外的上下文中。 |
protected List<KeyEventDispatcher> |
getKeyEventDispatchers() 作为 List 返回此 KeyboardFocusManager 的 KeyEventDispatcher 链。 |
protected List<KeyEventPostProcessor> |
getKeyEventPostProcessors() 作为 List 返回此 KeyboardFocusManager 的 KeyEventPostProcessor 链。 |
Component |
getPermanentFocusOwner() 如果持久焦点所有者与调用线程位于同一个上下文中,则返回持久焦点所有者。 |
PropertyChangeListener[] |
getPropertyChangeListeners() 返回在此键盘焦点管理器上注册的所有属性更改侦听器的数组。 |
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName) 返回与指定属性相关联的所有 PropertyChangeListener 的数组。 |
VetoableChangeListener[] |
getVetoableChangeListeners() 返回在此键盘焦点管理器上注册的所有可否决更改侦听器的数组。 |
VetoableChangeListener[] |
getVetoableChangeListeners(String propertyName) 返回与指定属性相关联的所有 VetoableChangeListener 的数组。 |
abstract boolean |
postProcessKeyEvent(KeyEvent e) dispatchKeyEvent 将调用此方法。 |
abstract void |
processKeyEvent(Component focusedComponent, KeyEvent e) 当且仅当该 KeyEvent 表示指定 focusedComponent 的焦点遍历键时,此方法启动焦点遍历操作。 |
void |
redispatchEvent(Component target, AWTEvent e) 重新指派 AWTEvent 的方式是,AWT 事件调度程序不会递归式请求 KeyboardFocusManager 或任何已安装的 KeyEventDispatcher 再次指派该事件。 |
void |
removeKeyEventDispatcher(KeyEventDispatcher dispatcher) 移除以前添加到此 KeyboardFocusManager 调度程序链中的 KeyEventDispatcher。 |
void |
removeKeyEventPostProcessor(KeyEventPostProcessor processor) 从此 KeyboardFocusManager 的后处理器链中移除以前添加的 KeyEventPostProcessor。 |
void |
removePropertyChangeListener(PropertyChangeListener listener) 从侦听器列表移除 PropertyChangeListener。 |
void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener) 从特定属性的侦听器列表移除 PropertyChangeListener。 |
void |
removeVetoableChangeListener(String propertyName, VetoableChangeListener listener) 从特定属性的侦听器列表移除 VetoableChangeListener。 |
void |
removeVetoableChangeListener(VetoableChangeListener listener) 从侦听器列表移除 VetoableChangeListener。 |
static void |
setCurrentKeyboardFocusManager(KeyboardFocusManager newManager) 设置调用线程上下文的当前 KeyboardFocusManager 实例。 |
void |
setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) 设置给定遍历操作的默认焦点遍历键。 |
void |
setDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy) 设置默认 FocusTraversalPolicy。 |
protected void |
setGlobalActiveWindow(Window activeWindow) 设置活动 Window。 |
void |
setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot) 设置当前焦点循环根。 |
protected void |
setGlobalFocusedWindow(Window focusedWindow) 设置聚焦 Window。 |
protected void |
setGlobalFocusOwner(Component focusOwner) 设置焦点所有者。 |
protected void |
setGlobalPermanentFocusOwner(Component permanentFocusOwner) 设置持久焦点所有者。 |
void |
upFocusCycle() 从当前焦点所有者将焦点上移一个焦点遍历循环。 |
abstract void |
upFocusCycle(Component aComponent) 将焦点上移一个焦点遍历循环。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
FORWARD_TRAVERSAL_KEYS
public static final int FORWARD_TRAVERSAL_KEYS
- Forward 焦点遍历键的标识符。
BACKWARD_TRAVERSAL_KEYS
public static final int BACKWARD_TRAVERSAL_KEYS
- Backward 焦点遍历键的标识符。
UP_CYCLE_TRAVERSAL_KEYS
public static final int UP_CYCLE_TRAVERSAL_KEYS
- Up Cycle 焦点遍历键的标识符。
DOWN_CYCLE_TRAVERSAL_KEYS
public static final int DOWN_CYCLE_TRAVERSAL_KEYS
- Down Cycle 焦点遍历键的标识符。
构造方法详细信息 |
---|
KeyboardFocusManager
public KeyboardFocusManager()
- 初始化 KeyboardFocusManager。
方法详细信息 |
---|
getCurrentKeyboardFocusManager
public static KeyboardFocusManager getCurrentKeyboardFocusManager()
- 返回调用线程上下文的当前 KeyboardFocusManager 实例。
-
-
- 返回:
- 此线程上下文的 KeyboardFocusManager
- 另请参见:
-
setCurrentKeyboardFocusManager(java.awt.KeyboardFocusManager)
setCurrentKeyboardFocusManager
public static void setCurrentKeyboardFocusManager(KeyboardFocusManager newManager) throws SecurityException
-
设置调用线程上下文的当前 KeyboardFocusManager 实例。如果指定了 null,则使用 DefaultKeyboardFocusManager 的新实例替换当前 KeyboardFocusManager。
如果安装了 SecurityManager,则必须授予调用线程 AWTPermission "replaceKeyboardFocusManager" 才能替换当前 KeyboardFocusManager。如果未授予该权限,则此方法将抛出 SecurityException,而当前的 KeyboardFocusManager 不会改变。
-
-
- 参数:
-
newManager
- 此线程上下文的新 KeyboardFocusManager - 抛出:
-
SecurityException
- 如果调用线程不具有替换当前 KeyboardFocusManager 的权限 - 另请参见:
-
getCurrentKeyboardFocusManager()
,DefaultKeyboardFocusManager
getFocusOwner
public Component getFocusOwner()
- 如果焦点所有者与调用线程位于同一个上下文中,则返回该焦点所有者。焦点所有者的定义是:应用程序中的 Component,通常接收用户生成的所有 KeyEvent。如果为焦点所有者启用了焦点遍历键,则不会传递映射到焦点所有者的焦点遍历键的 KeyEvent。此外,KeyEventDispatcher 在到达焦点所有者之前可能重定向或使用 KeyEvent。
-
-
- 返回:
- 焦点所有者;如果焦点所有者不是调用线程上下文的成员,则返回 null
- 另请参见:
-
getGlobalFocusOwner()
,setGlobalFocusOwner(java.awt.Component)
getGlobalFocusOwner
protected Component getGlobalFocusOwner() throws SecurityException
-
返回焦点所有者,即使调用线程处于焦点所有者之外的上下文中。焦点所有者的定义是:应用程序中的 Component,通常接收用户生成的所有 KeyEvent。如果为焦点所有者启用了焦点遍历键,则不会传递映射到焦点所有者的焦点遍历键的 KeyEvent。此外,KeyEventDispatcher 在到达焦点所有者之前可能重定向或使用 KeyEvent。
如果此 KeyboardFocusManager 不是调用线程上下文的当前 KeyboardFocusManager,则此方法将抛出 SecurityException。
-
-
- 返回:
- 焦点所有者
- 抛出:
-
SecurityException
- 如果此 KeyboardFocusManager 不是调用线程上下文的当前 KeyboardFocusManager - 另请参见:
-
getFocusOwner()
,setGlobalFocusOwner(java.awt.Component)