public class SortingFocusTraversalPolicy extends InternalFrameFocusTraversalPolicy
默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用setImplicitDownCycleTraversal
方法禁用此行为。
默认情况下,此类的方法仅在可见,可显示,已启用和可聚焦的情况下返回组件。 子类可以通过覆盖accept
方法来修改此行为。
此政策考虑到了focus traversal policy providers 。 当搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供程序,则其焦点遍历策略用于执行搜索操作。
Comparator
Modifier | Constructor and Description |
---|---|
protected |
SortingFocusTraversalPolicy()
构造一个没有比较器的SortingFocusTraversalPolicy。
|
|
SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
使用指定的比较器构造SortingFocusTraversalPolicy。
|
Modifier and Type | Method and Description |
---|---|
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是否隐式转移焦点下行周期。
|
getInitialComponent
getInitialComponent
protected SortingFocusTraversalPolicy()
setComparator
之前,子类必须使用setComparator
设置Comparator。
public SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
public Component getComponentAfter(Container aContainer, Component aComponent)
默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用setImplicitDownCycleTraversal
方法禁用此行为。
如果aContainer是focus traversal policy provider ,焦点总是转移到周期。
getComponentAfter
在
FocusTraversalPolicy
aContainer
- aComponent或焦点遍历策略提供者的焦点循环根
aComponent
-
aComponent
一个(可能是间接的)子,或者一个容器本身
IllegalArgumentException
- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
public Component getComponentBefore(Container aContainer, Component aComponent)
默认情况下,SortingFocusTraversalPolicy会隐式转移焦点下行周期。 也就是说,在正常聚焦遍历期间,在聚焦周期根之后遍历的组件将是focus-cycle-root的默认组件对焦。 可以使用setImplicitDownCycleTraversal
方法禁用此行为。
如果aContainer为focus traversal policy provider ,则焦点始终向下循环传输。
getComponentBefore
在
FocusTraversalPolicy
aContainer
- aComponent或焦点遍历策略提供程序的焦点循环根
aComponent
-
aComponent
一个(可能是间接的)子,或者一个容器本身
IllegalArgumentException
- 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
public Component getFirstComponent(Container aContainer)
getFirstComponent
在
FocusTraversalPolicy
aContainer
- 要返回其第一个组件的组件或焦点遍历策略提供程序的焦点循环根
IllegalArgumentException
- 如果aContainer为空
public Component getLastComponent(Container aContainer)
getLastComponent
在
FocusTraversalPolicy
类
aContainer
- 要返回其最后一个组件的组件或焦点遍历策略提供程序的焦点循环根
IllegalArgumentException
- 如果aContainer为空
public Component getDefaultComponent(Container aContainer)
getFirstComponent
。
getDefaultComponent
在
FocusTraversalPolicy
aContainer
- 要返回其默认组件的组件或焦点遍历策略提供程序的焦点循环根
IllegalArgumentException
- 如果aContainer为空
getFirstComponent(java.awt.Container)
public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
true
,在正常聚焦遍历期间,在焦点循环根之后遍历的组件将是focus-cycle-root的默认组件对焦。
如果false
,则将遍历根据指定焦点循环根的焦点遍历循环中的下一个组件。
此属性的默认值为true
。
implicitDownCycleTraversal
- 此SortingFocusTraversalPolicy是否隐式转移焦点下行周期
getImplicitDownCycleTraversal()
,
getFirstComponent(java.awt.Container)
public boolean getImplicitDownCycleTraversal()
true
,在正常聚焦遍历期间,在焦点循环根之后遍历的组件将是focus-cycle-root的默认组件对焦。
如果false
,则将以遍历指定的焦点循环根的方式遍历聚焦遍历周期中的下一个组件。
setImplicitDownCycleTraversal(boolean)
,
getFirstComponent(java.awt.Container)
protected void setComparator(Comparator<? super Component> comparator)
comparator
- 将用于排序的比较器
protected Comparator<? super Component> getComparator()
protected boolean accept(Component aComponent)
aComponent
- 要测试适合作为焦点所有者的组件
true
如果aComponent是可见的,可显示的,启用的和可聚焦的;
false
否则