所有类


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 SubsystemThe Java Tutorial 的一节)和 Focus Specification 以获取更多信息。

从以下版本开始:
1.4
另请参见:
Window, Frame, Dialog, FocusEvent, WindowEvent, KeyEvent

字段摘要
static intBACKWARD_TRAVERSAL_KEYS
          Backward 焦点遍历键的标识符。
static intDOWN_CYCLE_TRAVERSAL_KEYS
          Down Cycle 焦点遍历键的标识符。
static intFORWARD_TRAVERSAL_KEYS
          Forward 焦点遍历键的标识符。
static intUP_CYCLE_TRAVERSAL_KEYS
          Up Cycle 焦点遍历键的标识符。
 
构造方法摘要
KeyboardFocusManager()
          初始化 KeyboardFocusManager。
 
方法摘要
 voidaddKeyEventDispatcher(KeyEventDispatcher dispatcher)
          将 KeyEventDispatcher 添加到此 KeyboardFocusManager 的调度程序链中。
 voidaddKeyEventPostProcessor(KeyEventPostProcessor processor)
          将 KeyEventPostProcessor 添加到此 KeyboardFocusManager 的后处理器链中。
 voidaddPropertyChangeListener(PropertyChangeListener listener)
          将 PropertyChangeListener 添加到侦听器列表。
 voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          将 PropertyChangeListener 添加到特定属性的侦听器列表。
 voidaddVetoableChangeListener(String propertyName, VetoableChangeListener listener)
          将 VetoableChangeListener 添加到特定属性的侦听器列表。
 voidaddVetoableChangeListener(VetoableChangeListener listener)
          将 VetoableChangeListener 添加到侦听器列表。
 voidclearGlobalFocusOwner()
          在 Java 和本机级别清除全局焦点所有者。
protected abstract  voiddequeueKeyEvents(long after, Component untilFocused)
          由 AWT 调用以通知 KeyboardFocusManager 应该取消延迟指派 KeyEvent。
protected abstract  voiddiscardKeyEvents(Component comp)
          由 AWT 调用以通知 KeyboardFocusManager 应该取消延迟指派 KeyEvent。
abstract  booleandispatchEvent(AWTEvent e)
          AWT 事件调度程序可以调用此方法,请求当前的 KeyboardFocusManager 为其指派指定的事件。
abstract  booleandispatchKeyEvent(KeyEvent e)
          通常情况下,如果该指派程序链中的其他 KeyEventDispatcher 没有指派 KeyEvent 或者没有注册其他 KeyEventDispatcher,则 dispatchEvent 将调用此方法。
 voiddownFocusCycle()
          当且仅当当前焦点所有者是一个作为焦点循环根的 Container 时,从当前焦点所有者将焦点下移一个焦点遍历循环。
abstract  voiddownFocusCycle(Container aContainer)
          将焦点下移一个焦点遍历循环。
protected abstract  voidenqueueKeyEvents(long after, Component untilFocused)
          在指定的 Component 成为焦点所有者以前由 AWT 调用,以通知 KeyboardFocusManager 延迟指派 KeyEvent。
protected  voidfirePropertyChange(String propertyName, Object oldValue, Object newValue)
          激发 PropertyChangeEvent 以响应绑定属性中的更改。
protected  voidfireVetoableChange(String propertyName, Object oldValue, Object newValue)
          激发 PropertyChangeEvent 以响应可否决属性中的更改。
 voidfocusNextComponent()
          聚焦当前焦点所有者之后的 Component。
abstract  voidfocusNextComponent(Component aComponent)
          聚焦 aComponent 之后的 Component,通常基于 FocusTraversalPolicy。
 voidfocusPreviousComponent()
          聚焦当前焦点所有者之前的 Component。
abstract  voidfocusPreviousComponent(Component aComponent)
          聚焦 aComponent 之前的 Component,通常基于 FocusTraversalPolicy。
 WindowgetActiveWindow()
          如果活动 Window 与调用线程位于同一个上下文中,则返回活动 Window。
 ContainergetCurrentFocusCycleRoot()
          如果当前焦点循环根与调用线程位于相同的上下文中,则返回当前焦点循环根。
static KeyboardFocusManagergetCurrentKeyboardFocusManager()
          返回调用线程上下文的当前 KeyboardFocusManager 实例。
 Set<AWTKeyStroke>getDefaultFocusTraversalKeys(int id)
          返回给定遍历操作的默认焦点遍历键的 Set。
 FocusTraversalPolicygetDefaultFocusTraversalPolicy()
          返回默认 FocusTraversalPolicy。
 WindowgetFocusedWindow()
          如果聚焦窗口与调用线程位于同一个上下文中,则返回聚焦窗口。
 ComponentgetFocusOwner()
          如果焦点所有者与调用线程位于同一个上下文中,则返回该焦点所有者。
protected  WindowgetGlobalActiveWindow()
          返回活动 Window,即使调用线程处于活动 Window 之外的上下文中。
protected  ContainergetGlobalCurrentFocusCycleRoot()
          返回当前焦点循环根,即使调用线程处于当前焦点循环根之外的上下文中。
protected  WindowgetGlobalFocusedWindow()
          返回聚焦 Window,即使调用线程处于聚焦 Window 之外的上下文中。
protected  ComponentgetGlobalFocusOwner()
          返回焦点所有者,即使调用线程处于焦点所有者之外的上下文中。
protected  ComponentgetGlobalPermanentFocusOwner()
          返回持久焦点所有者,即使调用线程处于该持久焦点所有者之外的上下文中。
protected  List<KeyEventDispatcher>getKeyEventDispatchers()
          作为 List 返回此 KeyboardFocusManager 的 KeyEventDispatcher 链。
protected  List<KeyEventPostProcessor>getKeyEventPostProcessors()
          作为 List 返回此 KeyboardFocusManager 的 KeyEventPostProcessor 链。
 ComponentgetPermanentFocusOwner()
          如果持久焦点所有者与调用线程位于同一个上下文中,则返回持久焦点所有者。
 PropertyChangeListener[]getPropertyChangeListeners()
          返回在此键盘焦点管理器上注册的所有属性更改侦听器的数组。
 PropertyChangeListener[]getPropertyChangeListeners(String propertyName)
          返回与指定属性相关联的所有 PropertyChangeListener 的数组。
 VetoableChangeListener[]getVetoableChangeListeners()
          返回在此键盘焦点管理器上注册的所有可否决更改侦听器的数组。
 VetoableChangeListener[]getVetoableChangeListeners(String propertyName)
          返回与指定属性相关联的所有 VetoableChangeListener 的数组。
abstract  booleanpostProcessKeyEvent(KeyEvent e)
          dispatchKeyEvent 将调用此方法。
abstract  voidprocessKeyEvent(Component focusedComponent, KeyEvent e)
          当且仅当该 KeyEvent 表示指定 focusedComponent 的焦点遍历键时,此方法启动焦点遍历操作。
 voidredispatchEvent(Component target, AWTEvent e)
          重新指派 AWTEvent 的方式是,AWT 事件调度程序不会递归式请求 KeyboardFocusManager 或任何已安装的 KeyEventDispatcher 再次指派该事件。
 voidremoveKeyEventDispatcher(KeyEventDispatcher dispatcher)
          移除以前添加到此 KeyboardFocusManager 调度程序链中的 KeyEventDispatcher。
 voidremoveKeyEventPostProcessor(KeyEventPostProcessor processor)
          从此 KeyboardFocusManager 的后处理器链中移除以前添加的 KeyEventPostProcessor。
 voidremovePropertyChangeListener(PropertyChangeListener listener)
          从侦听器列表移除 PropertyChangeListener。
 voidremovePropertyChangeListener(String propertyName, PropertyChangeListener listener)
          从特定属性的侦听器列表移除 PropertyChangeListener。
 voidremoveVetoableChangeListener(String propertyName, VetoableChangeListener listener)
          从特定属性的侦听器列表移除 VetoableChangeListener。
 voidremoveVetoableChangeListener(VetoableChangeListener listener)
          从侦听器列表移除 VetoableChangeListener。
static voidsetCurrentKeyboardFocusManager(KeyboardFocusManager newManager)
          设置调用线程上下文的当前 KeyboardFocusManager 实例。
 voidsetDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
          设置给定遍历操作的默认焦点遍历键。
 voidsetDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy)
          设置默认 FocusTraversalPolicy。
protected  voidsetGlobalActiveWindow(Window activeWindow)
          设置活动 Window。
 voidsetGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
          设置当前焦点循环根。
protected  voidsetGlobalFocusedWindow(Window focusedWindow)
          设置聚焦 Window。
protected  voidsetGlobalFocusOwner(Component focusOwner)
          设置焦点所有者。
protected  voidsetGlobalPermanentFocusOwner(Component permanentFocusOwner)
          设置持久焦点所有者。
 voidupFocusCycle()
          从当前焦点所有者将焦点上移一个焦点遍历循环。
abstract  voidupFocusCycle(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 焦点遍历键的标识符。

另请参见:
setDefaultFocusTraversalKeys(int, java.util.Set), getDefaultFocusTraversalKeys(int), Component.setFocusTraversalKeys(int, java.util.Set), Component.getFocusTraversalKeys(int), 常量字段值

BACKWARD_TRAVERSAL_KEYS

public static final int BACKWARD_TRAVERSAL_KEYS
Backward 焦点遍历键的标识符。

另请参见:
setDefaultFocusTraversalKeys(int, java.util.Set), getDefaultFocusTraversalKeys(int), Component.setFocusTraversalKeys(int, java.util.Set), Component.getFocusTraversalKeys(int), 常量字段值

UP_CYCLE_TRAVERSAL_KEYS

public static final int UP_CYCLE_TRAVERSAL_KEYS
Up Cycle 焦点遍历键的标识符。

另请参见:
setDefaultFocusTraversalKeys(int, java.util.Set), getDefaultFocusTraversalKeys(int), Component.setFocusTraversalKeys(int, java.util.Set), Component.getFocusTraversalKeys(int), 常量字段值

DOWN_CYCLE_TRAVERSAL_KEYS

public static final int DOWN_CYCLE_TRAVERSAL_KEYS
Down Cycle 焦点遍历键的标识符。

另请参见:
setDefaultFocusTraversalKeys(int, java.util.Set), getDefaultFocusTraversalKeys(int), Component.setFocusTraversalKeys(int, java.util.Set), Component.getFocusTraversalKeys(int), 常量字段值
构造方法详细信息

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)