- 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 Component
getComponentAfter(Container aContainer, Component aComponent)
返回在aComponent之后应该接收焦点的Component。abstract Component
getComponentBefore(Container aContainer, Component aComponent)
返回应该在aComponent之前接收焦点的Component。abstract Component
getDefaultComponent(Container aContainer)
返回要对焦的默认组件。abstract Component
getFirstComponent(Container aContainer)
返回遍历周期中的第一个Component。Component
getInitialComponent(Window window)
返回当窗口第一次可见时应接收焦点的组件。abstract Component
getLastComponent(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()
-
-