java.lang.Object
java.awt.FocusTraversalPolicy
javax.swing.InternalFrameFocusTraversalPolicy
javax.swing.SortingFocusTraversalPolicy
- 直接已知的子类:
-
LayoutFocusTraversalPolicy
一个FocusTraversalPolicy,通过基于给定的Comparator对焦点遍历循环的组件进行排序来确定遍历顺序。不可见和不可显示的部分组件将不会被包括在内。
默认情况下,SortingFocusTraversalPolicy隐式地向下传递焦点循环。也就是说,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认要聚焦的组件。可以使用setImplicitDownCycleTraversal
方法禁用此行为。
默认情况下,此类的方法仅在组件可见、可显示、启用和可聚焦时返回组件。子类可以通过覆盖accept
方法来修改此行为。
此策略考虑到焦点遍历策略提供者。在搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供者,则使用其焦点遍历策略执行搜索操作。
- 自 JDK 版本:
- 1.4
- 参见:
-
Constructor Summary
ModifierConstructorDescriptionprotected
构造一个没有Comparator的SortingFocusTraversalPolicy。SortingFocusTraversalPolicy
(Comparator<? super Component> comparator) 构造一个带有指定Comparator的SortingFocusTraversalPolicy。 -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
确定组件是否是新焦点所有者的可接受选择。protected Comparator
<? super Component> 返回用于对焦点遍历循环中的组件进行排序的Comparator。getComponentAfter
(Container aContainer, Component aComponent) 返回aComponent之后应该接收焦点的组件。getComponentBefore
(Container aContainer, Component aComponent) 返回aComponent之前应该接收焦点的组件。getDefaultComponent
(Container aContainer) 返回默认要聚焦的组件。getFirstComponent
(Container aContainer) 返回遍历循环中的第一个组件。boolean
返回此SortingFocusTraversalPolicy是否隐式地向下传递焦点循环。getLastComponent
(Container aContainer) 返回遍历循环中的最后一个组件。protected void
setComparator
(Comparator<? super Component> comparator) 设置用于对焦点遍历循环中的组件进行排序的Comparator。void
setImplicitDownCycleTraversal
(boolean implicitDownCycleTraversal) 设置此SortingFocusTraversalPolicy是否隐式地向下传递焦点循环。Methods declared in class javax.swing.InternalFrameFocusTraversalPolicy
getInitialComponent
Methods declared in class java.awt.FocusTraversalPolicy
getInitialComponent
-
Constructor Details
-
SortingFocusTraversalPolicy
protected SortingFocusTraversalPolicy()构造一个没有Comparator的SortingFocusTraversalPolicy。子类必须在将此FocusTraversalPolicy安装在焦点循环根或KeyboardFocusManager上之前使用setComparator
设置Comparator。 -
SortingFocusTraversalPolicy
构造一个带有指定Comparator的SortingFocusTraversalPolicy。- 参数:
-
comparator
- 要排序的Comparator
-
-
Method Details
-
getComponentAfter
返回aComponent之后应该接收焦点的组件。aContainer必须是aComponent的焦点循环根或焦点遍历策略提供者。默认情况下,SortingFocusTraversalPolicy隐式地向下传递焦点循环。也就是说,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认要聚焦的组件。可以使用
setImplicitDownCycleTraversal
方法禁用此行为。如果aContainer是焦点遍历策略提供者,则焦点总是向下传递。
- 指定者:
-
getComponentAfter
在类FocusTraversalPolicy
中 - 参数:
-
aContainer
- aComponent的焦点循环根或焦点遍历策略提供者 -
aComponent
- aContainer的(可能间接)子级,或aContainer本身 - 返回:
- aComponent之后应该接收焦点的组件,如果找不到合适的组件则返回null
- 抛出:
-
IllegalArgumentException
- 如果aContainer不是aComponent的焦点循环根或焦点遍历策略提供者,或者aContainer或aComponent为null
-
getComponentBefore
返回aComponent之前应该接收焦点的组件。aContainer必须是aComponent的焦点循环根或焦点遍历策略提供者。默认情况下,SortingFocusTraversalPolicy隐式地向下传递焦点循环。也就是说,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认要聚焦的组件。可以使用
setImplicitDownCycleTraversal
方法禁用此行为。如果aContainer是焦点遍历策略提供者,则焦点总是向下传递。
- 指定者:
-
getComponentBefore
在类FocusTraversalPolicy
中 - 参数:
-
aContainer
- aComponent的焦点循环根或焦点遍历策略提供者 -
aComponent
- aContainer的(可能间接)子级,或aContainer本身 - 返回:
- aComponent之前应该接收焦点的组件,如果找不到合适的组件则返回null
- 抛出:
-
IllegalArgumentException
- 如果aContainer不是aComponent的焦点循环根或焦点遍历策略提供者,或者aContainer或aComponent为null
-
getFirstComponent
返回遍历循环中的第一个组件。此方法用于确定在正向方向上遍历包装时要聚焦的下一个组件。- 指定者:
-
getFirstComponent
在类FocusTraversalPolicy
中 - 参数:
-
aContainer
- aComponent的焦点循环根或焦点遍历策略提供者,其第一个组件将被返回 - 返回:
- aContainer遍历循环中的第一个组件,如果找不到合适的组件则返回null
- 抛出:
-
IllegalArgumentException
- 如果aContainer为null
-
getLastComponent
返回遍历循环中的最后一个组件。此方法用于确定在反向方向上遍历包装时要聚焦的下一个组件。- 指定者:
-
getLastComponent
在类FocusTraversalPolicy
中 - 参数:
-
aContainer
- aComponent的焦点循环根或焦点遍历策略提供者,其最后一个组件将被返回 - 返回:
- aContainer遍历循环中的最后一个组件,如果找不到合适的组件则返回null
- 抛出:
-
IllegalArgumentException
- 如果aContainer为null
-
getDefaultComponent
返回默认要聚焦的组件。当进入以aContainer为根的新焦点遍历循环时,此组件将首先接收焦点。此方法的默认实现返回与getFirstComponent
相同的组件。- 指定者:
-
getDefaultComponent
在类FocusTraversalPolicy
中 - 参数:
-
aContainer
- aComponent的焦点循环根或焦点遍历策略提供者,其默认组件将被返回 - 返回:
- aContainer遍历循环中的默认组件,如果找不到合适的组件则返回null
- 抛出:
-
IllegalArgumentException
- 如果aContainer为null - 参见:
-
setImplicitDownCycleTraversal
public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal) 设置此SortingFocusTraversalPolicy是否隐式地向下传递焦点循环。如果为true
,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认要聚焦的组件。如果为false
,则将遍历指定焦点循环根的焦点遍历循环中的下一个组件。此属性的默认值为true
。- 参数:
-
implicitDownCycleTraversal
- 设置此SortingFocusTraversalPolicy是否隐式地向下传递焦点循环 - 参见:
-
getImplicitDownCycleTraversal
public boolean getImplicitDownCycleTraversal()返回此SortingFocusTraversalPolicy是否隐式地向下传递焦点循环。如果为true
,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认要聚焦的组件。如果为false
,则将遍历指定焦点循环根的焦点遍历循环中的下一个组件。- 返回:
- 此SortingFocusTraversalPolicy是否隐式地传递焦点向下循环
- 参见:
-
setComparator
设置将用于对焦点遍历循环中的组件进行排序的比较器。- 参数:
-
comparator
- 将用于排序的比较器
-
getComparator
返回将用于对焦点遍历循环中的组件进行排序的比较器。- 返回:
- 将用于排序的比较器
-
accept
确定组件是否是新焦点所有者的可接受选择。默认情况下,此方法仅在组件可见、可显示、已启用且可聚焦时才接受组件。- 参数:
-
aComponent
- 要测试其作为焦点所有者的适合性的组件 - 返回:
-
如果aComponent可见、可显示、已启用且可聚焦,则返回
true
; 否则返回false
-