- java.lang.Object
-
- java.awt.FocusTraversalPolicy
-
- javax.swing.InternalFrameFocusTraversalPolicy
-
- javax.swing.SortingFocusTraversalPolicy
-
- 已知直接子类:
-
LayoutFocusTraversalPolicy
public class SortingFocusTraversalPolicy extends InternalFrameFocusTraversalPolicy
FocusTraversalPolicy通过基于给定的比较器对焦点遍历周期的组件进行排序来确定遍历顺序。 组件层次结构中不可见和可显示的部分将不包括在内。默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用
setImplicitDownCycleTraversal
方法禁用此行为。默认情况下,此类的方法仅在可见,可显示,已启用和可聚焦的情况下返回组件。 子类可以通过覆盖
accept
方法来修改此行为。该政策考虑到了focus traversal policy providers 。 当搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供程序,则其焦点遍历策略用于执行搜索操作。
- 从以下版本开始:
- 1.4
- 另请参见:
-
Comparator
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
SortingFocusTraversalPolicy()
构造一个没有比较器的SortingFocusTraversalPolicy。SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
使用指定的比较器构造SortingFocusTraversalPolicy。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected boolean
accept(Component aComponent)
确定组件是否是新焦点所有者的可接受选择。protected Comparator<? super Component>
getComparator()
返回将用于在焦点遍历循环中对“组件”进行排序的“比较器”。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()
返回此SortingFocusTraversalPolicy是否隐式转移焦点下行周期。Component
getLastComponent(Container aContainer)
返回遍历周期中的最后一个组件。protected void
setComparator(Comparator<? super Component> comparator)
设置在焦点遍历周期中用于对组件进行排序的比较器。void
setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
设置此SortingFocusTraversalPolicy是否隐式转移焦点下行周期。-
Methods inherited from class java.awt.FocusTraversalPolicy
getInitialComponent
-
Methods inherited from class javax.swing.InternalFrameFocusTraversalPolicy
getInitialComponent
-
-
-
-
构造方法详细信息
-
SortingFocusTraversalPolicy
protected SortingFocusTraversalPolicy()
构造一个没有比较器的SortingFocusTraversalPolicy。 子类必须使用setComparator
设置Comparator,setComparator
才能在Focus Cycle root或KeyboardFocusManager上安装此FocusTraversalPolicy。
-
SortingFocusTraversalPolicy
public SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
使用指定的比较器构造SortingFocusTraversalPolicy。- 参数
-
comparator
- 要排序的Comparator
-
-
方法详细信息
-
getComponentAfter
public Component getComponentAfter(Container aContainer, Component aComponent)
返回在aComponent之后应该接收焦点的Component。 aContainer必须是aComponent或焦点遍历策略提供者的焦点循环根。默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是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或焦点遍历策略提供者的焦点循环根。默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用
setImplicitDownCycleTraversal
方法禁用此行为。如果aContainer是focus traversal policy provider ,焦点总是转移到周期。
- Specified by:
-
getComponentBefore
中的FocusTraversalPolicy
- 参数
-
aContainer
- aComponent或焦点遍历策略提供程序的焦点循环根 -
aComponent
- aContainer的一个(可能是间接的)子,或者一个aComponent
本身 - 结果
- 应该在aComponent之前收到焦点的组件,如果没有找到合适的组件,则为null
- 异常
-
IllegalArgumentException
- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者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)
设置此SortingFocusTraversalPolicy是否隐式转移焦点下行周期。 如果为true
,则在正常聚焦遍历期间,聚焦周期之后遍历的组件将是focus-cycle-root的默认组件对焦。 如果是false
,则将以遍历指定的焦点循环根为基础的下一个聚焦遍历循环中的组件被替换。 该属性的默认值为true
。- 参数
-
implicitDownCycleTraversal
- 此SortingFocusTraversalPolicy是否隐式转移焦点下行周期 - 另请参见:
-
getImplicitDownCycleTraversal()
,getFirstComponent(java.awt.Container)
-
getImplicitDownCycleTraversal
public boolean getImplicitDownCycleTraversal()
返回此SortingFocusTraversalPolicy是否隐式转移焦点下行周期。 如果为true
,在正常聚焦遍历期间,聚焦周期之后遍历的组件将是focus-cycle-root的默认组件对焦。 如果是false
,则将以遍历指定的焦点循环根的方式遍历关注遍历循环中的下一个组件。- 结果
- 这个SortingFocusTraversalPolicy是否隐式地转移焦点下来循环
- 另请参见:
-
setImplicitDownCycleTraversal(boolean)
,getFirstComponent(java.awt.Container)
-
setComparator
protected void setComparator(Comparator<? super Component> comparator)
设置在焦点遍历周期中用于对组件进行排序的比较器。- 参数
-
comparator
- 将用于排序的比较器
-
getComparator
protected Comparator<? super Component> getComparator()
返回将用于在焦点遍历循环中对“组件”进行排序的“比较器”。- 结果
- 将用于排序的比较器
-
accept
protected boolean accept(Component aComponent)
确定组件是否是新焦点所有者的可接受选择。 默认情况下,当且仅当它可见,可显示,启用和可聚焦时,此方法将接受组件。- 参数
-
aComponent
- 要测试适合作为焦点所有者的组件 - 结果
-
true
如果aComponent是可见的,可显示的,启用的和可聚焦的; 否则为false
-
-