- java.lang.Object
-
- java.awt.FocusTraversalPolicy
-
public abstract class FocusTraversalPolicy extends Object
FocusTraversalPolicy定义了遍历特定焦点循环根的组件的顺序。 实例可以将策略应用于任意焦点循环根,允许自己在容器之间共享。 当组件层次结构的焦点循环根源发生变化时,不需要重新初始化它们。FocusTraversalPolicy的核心职责是提供确定在UI中向前或向后遍历的下一个和以前的组件的算法。 每个FocusTraversalPolicy还必须提供用于确定遍历周期中的第一个,最后一个和默认组件的算法。 正常的向前和向后遍历分别使用第一个和最后一个组件。 当向下移动到新的聚焦遍历循环中时,默认组件是第一个接收焦点的组件。 FocusTraversalPolicy可以选择提供一种用于确定Window初始组件的算法。 初始组件是第一个在首次显示窗口时接收焦点的组件。
FocusTraversalPolicy考虑到了focus traversal policy providers 。 当搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供程序,则其焦点遍历策略用于执行搜索操作。
请参阅How to Use the Focus Subsystem , Java教程中的一节,以及有关更多信息的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()
-
-
构造方法摘要
构造方法 Constructor 描述 FocusTraversalPolicy()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract ComponentgetComponentAfter(Container aContainer, Component aComponent)返回在aComponent之后应该接收焦点的Component。abstract ComponentgetComponentBefore(Container aContainer, Component aComponent)返回应该在aComponent之前接收焦点的Component。abstract ComponentgetDefaultComponent(Container aContainer)返回要对焦的默认组件。abstract ComponentgetFirstComponent(Container aContainer)返回遍历周期中的第一个Component。ComponentgetInitialComponent(Window window)返回当窗口第一次可见时应接收焦点的组件。abstract ComponentgetLastComponent(Container aContainer)返回遍历周期中的最后一个组件。
-
-
-
方法详细信息
-
getComponentAfter
public abstract Component getComponentAfter(Container aContainer, Component aComponent)
返回在aComponent之后应该接收焦点的Component。 aContainer必须是aComponent或焦点遍历策略提供者的焦点循环根。- 参数
-
aContainer- 组件或焦点遍历策略提供程序的焦点循环根 -
aComponent- aContainer的一个(可能是间接的)子,或者一个aComponent本身 - 结果
- 应该在aComponent之后接收焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
-
getComponentBefore
public abstract Component getComponentBefore(Container aContainer, Component aComponent)
返回应该在aComponent之前接收焦点的Component。 aContainer必须是aComponent或焦点遍历策略提供者的焦点循环根。- 参数
-
aContainer- 组件或焦点遍历策略提供程序的焦点循环根 -
aComponent- aContainer的一个(可能是间接的)子,或者一个aComponent本身 - 结果
- 应该在aComponent之前收到焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
-
getFirstComponent
public abstract Component getFirstComponent(Container aContainer)
返回遍历周期中的第一个Component。 该方法用于确定当向前方向遍历包装时要聚焦的下一个组件。- 参数
-
aContainer- 要返回其第一个组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的第一个组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException- 如果aContainer为空
-
getLastComponent
public abstract Component getLastComponent(Container aContainer)
返回遍历周期中的最后一个组件。 该方法用于确定当相反方向遍历包装时要聚焦的下一个组件。- 参数
-
aContainer- 要返回其最后一个组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的最后一个组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException- 如果aContainer为空
-
getDefaultComponent
public abstract Component getDefaultComponent(Container aContainer)
返回要对焦的默认组件。 当向下移动到基于aContainer的新的焦点遍历循环时,该组件将成为第一个接收焦点的组件。- 参数
-
aContainer- 要返回默认组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的默认组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException- 如果aContainer为空
-
getInitialComponent
public Component getInitialComponent(Window window)
返回当窗口第一次可见时应接收焦点的组件。 一旦通过调用show()或setVisible(true)可视窗口,初始组件将不再被使用。 相反,如果窗口丢失并随后重新获得焦点,或者使其成为隐形或不可显示,并随后使其可见和可显示,则Window最新关注的组件将成为焦点所有者。 此方法的默认实现返回默认组件。- 参数
-
window- 要返回其初始组件的窗口 - 结果
- 当第一次显示窗口时应该接收焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException- 如果窗口为空 - 另请参见:
-
getDefaultComponent(java.awt.Container),Window.getMostRecentFocusOwner()
-
-