- java.lang.Object
-
- java.awt.FocusTraversalPolicy
-
- java.awt.ContainerOrderFocusTraversalPolicy
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
DefaultFocusTraversalPolicy
public class ContainerOrderFocusTraversalPolicy extends FocusTraversalPolicy implements Serializable
FocusTraversalPolicy根据容器中子组件的顺序确定遍历顺序。 从特定的焦点循环根中,策略对组件层次结构进行预先遍历,并根据Container.getComponents()
返回的数组的顺序遍历Container的子Container.getComponents()
。 层级结构中不可见和可显示的部分将不被搜索。默认情况下,ContainerOrderFocusTraversalPolicy隐式转移焦点下行循环。 也就是说,在正常的正向聚焦遍历期间,在焦点循环根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用
setImplicitDownCycleTraversal
方法禁用此行为。默认情况下,此类的方法只有在可见,可显示,启用和可聚焦的情况下才会返回组件。 子类可以通过覆盖
accept
方法来修改此行为。此政策考虑到了focus traversal policy providers 。 当搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供程序,则其焦点遍历策略用于执行搜索操作。
- 从以下版本开始:
- 1.4
- 另请参见:
-
Container.getComponents()
, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 ContainerOrderFocusTraversalPolicy()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected boolean
accept(Component aComponent)
确定组件是否是新焦点所有者的可接受选择。Component
getComponentAfter(Container aContainer, Component aComponent)
返回在aComponent之后应该接收焦点的Component。Component
getComponentBefore(Container aContainer, Component aComponent)
返回应该在aComponent之前接收焦点的Component。Component
getDefaultComponent(Container aContainer)
返回要对焦的默认组件。Component
getFirstComponent(Container aContainer)
返回遍历周期中的第一个Component。boolean
getImplicitDownCycleTraversal()
返回此ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行循环。Component
getLastComponent(Container aContainer)
返回遍历周期中的最后一个组件。void
setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
设置此ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行周期。-
Methods inherited from class java.awt.FocusTraversalPolicy
getInitialComponent
-
-
-
-
方法详细信息
-
getComponentAfter
public Component getComponentAfter(Container aContainer, Component aComponent)
返回在aComponent之后应该接收焦点的Component。 aContainer必须是aComponent或焦点遍历策略提供者的焦点循环根。默认情况下,ContainerOrderFocusTraversalPolicy隐式转移焦点下行循环。 也就是说,在正常的正向聚焦遍历期间,在焦点循环根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用
setImplicitDownCycleTraversal
方法禁用此行为。如果aContainer是focus traversal policy provider ,则焦点总是被转移到周期。
- Specified by:
-
getComponentAfter
在FocusTraversalPolicy
- 参数
-
aContainer
- aComponent或焦点遍历策略提供程序的焦点循环根 -
aComponent
- aContainer的一个(可能是间接的)子,或者一个aComponent
本身 - 结果
- 应该在aComponent之后接收焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException
- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
-
getComponentBefore
public Component getComponentBefore(Container aContainer, Component aComponent)
返回应该在aComponent之前接收焦点的Component。 aContainer必须是aComponent的焦点循环根或focus traversal policy provider 。- Specified by:
-
getComponentBefore
中的FocusTraversalPolicy
- 参数
-
aContainer
- 组件或焦点遍历策略提供者的焦点循环根 -
aComponent
- aContainer的一个(可能是间接的)子,或者一个aComponent
本身 - 结果
- 应该在aComponent之前收到焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException
- 如果aContainer不是组件或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
-
getFirstComponent
public Component getFirstComponent(Container aContainer)
返回遍历周期中的第一个Component。 该方法用于确定当向前方向遍历包装时要聚焦的下一个组件。- Specified by:
-
getFirstComponent
在FocusTraversalPolicy
- 参数
-
aContainer
- 要返回其第一个组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的第一个组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException
- 如果aContainer为空
-
getLastComponent
public Component getLastComponent(Container aContainer)
返回遍历周期中的最后一个组件。 该方法用于确定当相反方向遍历包装时要聚焦的下一个组件。- Specified by:
-
getLastComponent
类FocusTraversalPolicy
- 参数
-
aContainer
- 要返回最后一个组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的最后一个组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException
- 如果aContainer为空
-
getDefaultComponent
public Component getDefaultComponent(Container aContainer)
返回要对焦的默认组件。 当向下移动到基于aContainer的新的焦点遍历循环时,该组件将成为第一个接收焦点的组件。 此方法的默认实现返回与getFirstComponent
相同的组件。- Specified by:
-
getDefaultComponent
中的FocusTraversalPolicy
- 参数
-
aContainer
- 要返回默认组件的焦点循环根或焦点遍历策略提供程序 - 结果
- aContainer遍历周期中的默认组件,如果没有找到合适的组件,则返回null
- 异常
-
IllegalArgumentException
- 如果aContainer为空 - 另请参见:
-
getFirstComponent(java.awt.Container)
-
setImplicitDownCycleTraversal
public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
设置此ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行周期。 如果是true
,在正常的向前聚焦遍历期间,在聚焦周期之后遍历的组件将是focus-cycle-root的默认组件对焦。 如果为false
,则将以遍历指定的焦点循环根为单位的对象遍历周期中的下一个组件进行遍历。 该属性的默认值为true
。- 参数
-
implicitDownCycleTraversal
- 这个ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行周期 - 另请参见:
-
getImplicitDownCycleTraversal()
,getFirstComponent(java.awt.Container)
-
getImplicitDownCycleTraversal
public boolean getImplicitDownCycleTraversal()
返回此ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行循环。 如果是true
,在正常的向前聚焦遍历期间,在聚焦周期之后遍历的组件将是focus-cycle-root的默认组件对焦。 如果是false
,则将以遍历指定的焦点循环根的方式遍历聚焦遍历周期中的下一个组件。- 结果
- 这个ContainerOrderFocusTraversalPolicy是否隐式转移焦点下行周期
- 另请参见:
-
setImplicitDownCycleTraversal(boolean)
,getFirstComponent(java.awt.Container)
-
accept
protected boolean accept(Component aComponent)
确定组件是否是新焦点所有者的可接受选择。 默认情况下,当且仅当它可见,可显示,启用和可聚焦时,此方法将接受组件。- 参数
-
aComponent
- 要测试适合作为焦点所有者的组件 - 结果
-
如果aComponent可见,可显示,启用和可聚焦,
true
; 否则为false
-
-