java.lang.Object java.awt.FocusTraversalPolicy java.awt.ContainerOrderFocusTraversalPolicy
public class ContainerOrderFocusTraversalPolicy
根据 Container 中的子 Component 的顺序确定遍历顺序的 FocusTraversalPolicy。该策略将从特定焦点循环根对 Component 层次结构进行前序遍历,并根据 Container.getComponents()
返回的数组顺序遍历 Container 的子容器。不可视和不可显示的部分层次结构将不被搜索。
默认情况下,ContainerOrderFocusTraversalPolicy 会隐式将焦点传递给下一个循环。也就是说,在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal
方法禁用此行为。
默认情况下,只有 Component 是可视的、可显示的、被启用的和可聚焦的时候,此类的方法才返回此 Component。子类可以通过重写 accept
方法修改此行为。
此策略需要考虑焦点遍历策略提供者。在搜索第一个/最后一个/下一个/前一个 Component 时,如果遇到一个焦点遍历策略提供者,则使用其焦点遍历策略来执行搜索操作。
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 |
构造方法详细信息 |
---|
public ContainerOrderFocusTraversalPolicy()
方法详细信息 |
---|
public Component getComponentAfter(Container aContainer, Component aComponent)
默认情况下,ContainerOrderFocusTraversalPolicy 会隐式将焦点传递给下一个循环。也就是说,在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal
方法禁用此行为。
如果 aContainer 是焦点遍历策略提供者,则总是将焦点传递到下一个循环。
FocusTraversalPolicy
中的
getComponentAfter
aContainer
- aComponent 的一个焦点循环根或者一个焦点遍历策略提供者
aComponent
- aContainer 的一个(可能间接的)子代,或者 aContainer 自身
IllegalArgumentException
- 如果 aContainer 不是 aComponent 的焦点循环根或者焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null
public Component getComponentBefore(Container aContainer, Component aComponent)
FocusTraversalPolicy
中的
getComponentBefore
aContainer
- aComponent 的一个焦点循环根或者一个焦点遍历策略提供者
aComponent
- aContainer 的一个(可能间接的)子代,或者 aContainer 自身
IllegalArgumentException
- 如果 aContainer 不是 aComponent 的焦点循环根或者焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null
public Component getFirstComponent(Container aContainer)
FocusTraversalPolicy
中的
getFirstComponent
aContainer
- 将返回其第一个 Component 的焦点循环根或焦点遍历策略提供者
IllegalArgumentException
- 如果 aContainer 为 null
public Component getLastComponent(Container aContainer)
FocusTraversalPolicy
中的
getLastComponent
aContainer
- 将返回其最后一个 Component 的焦点循环根或焦点遍历策略提供者
IllegalArgumentException
- 如果 aContainer 为 null
public Component getDefaultComponent(Container aContainer)
getFirstComponent
相同的 Component。
FocusTraversalPolicy
中的
getDefaultComponent
aContainer
- 将返回其默认 Component 的焦点循环根或焦点遍历策略提供者
IllegalArgumentException
- 如果 aContainer 为 null
getFirstComponent(java.awt.Container)
public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
true
,则在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。如果设置为
false
,则将遍历根植在指定焦点循环根的焦点遍历循环中的下一个 Component。此属性的默认值为
true
。
implicitDownCycleTraversal
- 此 ContainerOrderFocusTraversalPolicy 是否隐式将焦点传递给下一个循环
getImplicitDownCycleTraversal()
,
getFirstComponent(java.awt.Container)
public boolean getImplicitDownCycleTraversal()
true
,则在进行普通正向焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。如果返回
false
,则将遍历根植在指定焦点循环根上的焦点遍历循环中的下一个 Component。
setImplicitDownCycleTraversal(boolean)
,
getFirstComponent(java.awt.Container)
protected boolean accept(Component aComponent)
aComponent
- 将测试其是否适合作为焦点所有者的 Component
true
;否则返回
false