JavaTM Platform
Standard Ed. 6

javax.swing
类 SortingFocusTraversalPolicy

java.lang.Object
  继承者 java.awt.FocusTraversalPolicy
      继承者 javax.swing.InternalFrameFocusTraversalPolicy
          继承者 javax.swing.SortingFocusTraversalPolicy
直接已知子类:
LayoutFocusTraversalPolicy

public class SortingFocusTraversalPolicy
     
extends InternalFrameFocusTraversalPolicy

通过对焦点遍历循环的 Components 按给定 Comparator 排序确定遍历顺序的 FocusTraversalPolicy。不可视和不可显示的 Component 层次结构部分将不被包含。

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

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

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

从以下版本开始:
1.4
另请参见:
Comparator

构造方法摘要
protected SortingFocusTraversalPolicy()
          构造一个不带 Comparator 的 SortingFocusTraversalPolicy。
  SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
          构造具有指定 Comparator 的 SortingFocusTraversalPolicy。
 
方法摘要
protected  boolean accept(Component aComponent)
          确定是否可以接受选择某个 Component 作为新的焦点拥有者。
protected  Comparator<? super Component> getComparator()
          返回将用于对焦点遍历循环中的 Components 排序的 Comparator。
 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()
          返回对此 SortingFocusTraversalPolicy 是否隐式将焦点传输给下一个循环的判断。
 Component getLastComponent(Container aContainer)
          返回遍历循环中的最后一个 Component。
protected  void setComparator(Comparator<? super Component> comparator)
          设置将用于对焦点遍历循环中的 Components 排序的 Comparator。
 void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
          设置此 SortingFocusTraversalPolicy 是否隐式将焦点传输给下一个循环。
 
从类 javax.swing.InternalFrameFocusTraversalPolicy 继承的方法
getInitialComponent
 
从类 java.awt.FocusTraversalPolicy 继承的方法
getInitialComponent
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SortingFocusTraversalPolicy

protected SortingFocusTraversalPolicy()
构造一个不带 Comparator 的 SortingFocusTraversalPolicy。在焦点循环根或 KeyboardFocusManager 上安装此 FocusTraversalPolicy 之前,子类必须用 setComparator 设置 Comparator。


SortingFocusTraversalPolicy

public SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
构造具有指定 Comparator 的 SortingFocusTraversalPolicy。

方法详细信息

getComponentAfter

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

默认情况下,SortingFocusTraversalPolicy 会隐式将焦点传输给下一个循环。也就是说,在进行正常焦点遍历期间,在焦点循环根后面遍历的 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 的焦点循环根,或者是一个焦点遍历策略提供者。

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

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

指定者:
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 的 aComponent 的焦点循环根,或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的第一个 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getLastComponent

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

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

getDefaultComponent

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

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

setImplicitDownCycleTraversal

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

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

getImplicitDownCycleTraversal

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

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

setComparator

protected void setComparator(Comparator<? super Component> comparator)
设置将用于对焦点遍历循环中的 Components 排序的 Comparator。

参数:
comparator - 将用于排序的 Comparator

getComparator

protected Comparator<? super Component> getComparator()
返回将用于对焦点遍历循环中的 Components 排序的 Comparator。

返回:
将用于排序的 Comparator

accept

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

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

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策