java.awt

接口
异常
错误
java.lang.Object
  继承者 java.awt.FocusTraversalPolicy
      继承者 java.awt.ContainerOrderFocusTraversalPolicy
所有已实现的接口:
Serializable
直接已知子类:
DefaultFocusTraversalPolicy

public class ContainerOrderFocusTraversalPolicy
     
extends FocusTraversalPolicy
implements Serializable

根据 Container 中的子 Component 的顺序确定遍历顺序的 FocusTraversalPolicy。该策略将从特定焦点循环根对 Component 层次结构进行前序遍历,并根据 Container.getComponents() 返回的数组顺序遍历 Container 的子容器。不可视和不可显示的部分层次结构将不被搜索。

默认情况下,ContainerOrderFocusTraversalPolicy 会隐式将焦点传递给下一个循环。也就是说,在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。

默认情况下,只有 Component 是可视的、可显示的、被启用的和可聚焦的时候,此类的方法才返回此 Component。子类可以通过重写 accept 方法修改此行为。

此策略需要考虑焦点遍历策略提供者。在搜索第一个/最后一个/下一个/前一个 Component 时,如果遇到一个焦点遍历策略提供者,则使用其焦点遍历策略来执行搜索操作。

从以下版本开始:
1.4
另请参见:
Container.getComponents(), 序列化表格

构造方法摘要
ContainerOrderFocusTraversalPolicy()
           
 
方法摘要
protected  boolean accept(Component aComponent)
          确定是否可以接受选择某个 Component 作为新的焦点拥有者。
 Component getComponentAfter(Container aContainer, Component aComponent)
          返回应该接收 aComponent 后面的焦点的 Component。
 Component getComponentBefore(Container aContainer, Component aComponent)
          返回应该接收 aComponent 前面的焦点的 Component。
 Component getDefaultComponent(Container aContainer)
          返回默认拥有焦点的 Component。
 Component getFirstComponent(Container aContainer)
          返回遍历循环中的第一个 Component。
 boolean getImplicitDownCycleTraversal()
          返回对此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环的判断。
 Component getLastComponent(Container aContainer)
          返回遍历循环中的最后一个 Component。
 void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
          设置此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环。
 
从类 java.awt.FocusTraversalPolicy 继承的方法
getInitialComponent
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ContainerOrderFocusTraversalPolicy

public ContainerOrderFocusTraversalPolicy()
方法详细信息

getComponentAfter

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

默认情况下,ContainerOrderFocusTraversalPolicy 会隐式将焦点传递给下一个循环。也就是说,在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。

如果 aContainer 是焦点遍历策略提供者,则总是将焦点传递到下一个循环。

指定者:
FocusTraversalPolicy 中的 getComponentAfter
参数:
aContainer - aComponent 的一个焦点循环根或者一个焦点遍历策略提供者
aComponent - aContainer 的一个(可能间接的)子代,或者 aContainer 自身
返回:
应该接受 aComponent 后面的焦点的 Component,如果没有找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或者焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getComponentBefore

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

指定者:
FocusTraversalPolicy 中的 getComponentBefore
参数:
aContainer - aComponent 的一个焦点循环根或者一个焦点遍历策略提供者
aComponent - aContainer 的一个(可能间接的)子代,或者 aContainer 自身
返回:
应该接受 aComponent 前面的焦点的 Component,如果没有找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或者焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getFirstComponent

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

指定者:
FocusTraversalPolicy 中的 getFirstComponent
参数:
aContainer - 将返回其第一个 Component 的焦点循环根或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的第一个 Component,如果没有找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getLastComponent

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

指定者:
FocusTraversalPolicy 中的 getLastComponent
参数:
aContainer - 将返回其最后一个 Component 的焦点循环根或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的最后一个 Component,如果没有找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getDefaultComponent

public Component getDefaultComponent(Container aContainer)
返回默认拥有焦点的 Component。在向下遍历到以 aContainer 为根的新焦点遍历循环时,此 Component 将是第一个接受焦点的 Component。此方法的默认实现将返回与 getFirstComponent 相同的 Component。

指定者:
FocusTraversalPolicy 中的 getDefaultComponent
参数:
aContainer - 将返回其默认 Component 的焦点循环根或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的默认 Component,如果没有找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null
另请参见:
getFirstComponent(java.awt.Container)

setImplicitDownCycleTraversal

public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
设置此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环。如果设置为 true,则在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。如果设置为 false,则将遍历根植在指定焦点循环根的焦点遍历循环中的下一个 Component。此属性的默认值为 true

参数:
implicitDownCycleTraversal - 此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环
另请参见:
getImplicitDownCycleTraversal(), getFirstComponent(java.awt.Container)

getImplicitDownCycleTraversal

public boolean getImplicitDownCycleTraversal()
返回对此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环的判断。如果返回 true,则在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。如果返回 false,则将遍历根植在指定焦点循环根上的焦点遍历循环中的下一个 Component。

返回:
此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环
另请参见:
setImplicitDownCycleTraversal(boolean), getFirstComponent(java.awt.Container)

accept

protected boolean accept(Component aComponent)
确定是否可以接受选择某个 Component 作为新的焦点拥有者。默认情况下,当且仅当 Component 是可视的、可显示的、被启用的和可聚焦的时候,此方法才接受此 Component。

参数:
aComponent - 将测试其是否适合作为焦点所有者的 Component
返回:
如果 aComponent 是可视的、可显示的、被启用的和可聚焦的,则返回 true;否则返回 false