JavaTM Platform
Standard Ed. 6

java.awt
类 FocusTraversalPolicy

java.lang.Object
  继承者 java.awt.FocusTraversalPolicy
直接已知子类:
ContainerOrderFocusTraversalPolicy, InternalFrameFocusTraversalPolicy

public abstract class FocusTraversalPolicy
     
extends Object

FocusTraversalPolicy 定义一种顺序,按此顺序遍历具有特定焦点循环根的 Component。实例可以将此策略应用于任意焦点循环根,允许它们在整个 Container 共享。当焦点循环根的组件层次结构更改时,不必重新初始化它们。

FocusTraversalPolicy 的核心职责是提供算法,在 UI 中进行向前或向后遍历时确定下一个和上一个要聚焦的 Component。每个 FocusTraversalPolicy 还必须提供算法,确定遍历循环中第一个、最后一个,以及默认的组件。进行正常的正向和反向遍历时,分别使用第一个和最后一个 Component。默认的 Component 是向下遍历到一个新的焦点遍历循环时接收焦点的第一个 Component。FocusTraversalPolicy 可以随意提供确定窗口初始 Component 的算法。初始 Component 是首次将窗口设置为可见时接收焦点的第一个 Component。

FocusTraversalPolicy 会考虑焦点遍历策略提供者。当搜索第一个/最后一个/下一个/上一个 Component 时,如果遇到焦点遍历策略提供者,则使用该焦点遍历策略来执行搜索操作。

有关更多信息,请参阅 The Java TutorialHow to Use the Focus Subsystem 一节和 Focus Specification

从以下版本开始:
1.4
另请参见:
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), Container.getFocusTraversalPolicy(), Container.setFocusCycleRoot(boolean), Container.isFocusCycleRoot(java.awt.Container), Container.setFocusTraversalPolicyProvider(boolean), Container.isFocusTraversalPolicyProvider(), KeyboardFocusManager.setDefaultFocusTraversalPolicy(java.awt.FocusTraversalPolicy), KeyboardFocusManager.getDefaultFocusTraversalPolicy()

构造方法摘要
FocusTraversalPolicy()
           
 
方法摘要
abstract  Component getComponentAfter(Container aContainer, Component aComponent)
          返回应该接收 aComponent 之后的焦点的 Component,aContainer 必须是 aComponent 的焦点循环根,或者焦点遍历策略提供者。
abstract  Component getComponentBefore(Container aContainer, Component aComponent)
          返回应该接收 aComponent 之前的焦点的 Component,aContainer 必须是 aComponent 的焦点循环根,或焦点遍历策略提供者。
abstract  Component getDefaultComponent(Container aContainer)
          返回要聚焦的默认 Component。
abstract  Component getFirstComponent(Container aContainer)
          返回遍历循环中的第一个 Component。
 Component getInitialComponent(Window window)
          返回第一次将窗口设置为可见时,应该接收焦点的 Component。
abstract  Component getLastComponent(Container aContainer)
          返回遍历循环中的最后一个 Component。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

FocusTraversalPolicy

public FocusTraversalPolicy()
方法详细信息

getComponentAfter

public abstract Component getComponentAfter(Container aContainer,
                                            Component aComponent)
返回应该接收 aComponent 之后的焦点的 Component,aContainer 必须是 aComponent 的焦点循环根,或者焦点遍历策略提供者。

参数:
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子级(可能是间接的),或 aContainer 自身
返回:
应该接收 aComponent 之后的焦点的 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getComponentBefore

public abstract Component getComponentBefore(Container aContainer,
                                             Component aComponent)
返回应该接收 aComponent 之前的焦点的 Component,aContainer 必须是 aComponent 的焦点循环根,或焦点遍历策略提供者。

参数:
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子级(可能是间接的),或 aContainer 自身
返回:
应该接收 aComponent 之前的焦点的 Componentor,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getFirstComponent

public abstract Component getFirstComponent(Container aContainer)
返回遍历循环中的第一个 Component。在进行正向遍历时,可用此方法确定拥有焦点的下一个 Component。

参数:
aContainer - 焦点循环根,或要返回第一个 Component 的焦点遍历策略提供者
返回:
aContainer 的遍历循环中的第一个 Componentor,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getLastComponent

public abstract Component getLastComponent(Container aContainer)
返回遍历循环中的最后一个 Component。在进行反向遍历时,可用此方法确定拥有焦点的下一个 Component。

参数:
aContainer - 焦点循环根,或要返回最后一个 Component 的焦点遍历策略提供者
返回:
aContainer 的遍历循环中的最后一个 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getDefaultComponent

public abstract Component getDefaultComponent(Container aContainer)
返回要聚焦的默认 Component。在向下遍历到以 aContainer 为根的新焦点遍历循环时,此 Component 将是第一个接受焦点的 Component。

参数:
aContainer - 焦点循环根,或要返回其默认 Component 的焦点遍历策略提供者
返回:
aContainer 的遍历循环中的默认 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getInitialComponent

public Component getInitialComponent(Window window)
返回第一次将窗口设置为可见时,应该接收焦点的 Component。一旦通过调用 show()setVisible(true) 将窗口设置为可见的,将不再使用初始 Component。相反,如果窗口失去焦点、随后又重获焦点,或者设置为不可见或不可显示、随后又设置为可见或可显示,则窗口最近聚焦的 Component 将成为焦点所有者。此方法的默认实现返回默认 Component。

参数:
window - 要返回其初始组件的 Window
返回:
第一次将窗口设置为可见时,应该接收焦点的 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 window 为 null
另请参见:
getDefaultComponent(java.awt.Container), Window.getMostRecentFocusOwner()

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策