java.lang.Objectjava.awt.FocusTraversalPolicy
javax.swing.InternalFrameFocusTraversalPolicy
javax.swing.SortingFocusTraversalPolicy
javax.swing.LayoutFocusTraversalPolicy
public class LayoutFocusTraversalPolicy
根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。根据 Component 的大小和位置,可以将其大致归类为行和列。对于水平方向的 Container,列的排列顺序是从左到右或从右到左,行的排列顺序是从顶端到底部。对于垂直方向的 Container,列的排列顺序是从顶端到底部,行的排列顺序是从左到右或从右到左。有关更多信息,请参见 ComponentOrientation。在完全遍历一行中的所有列之后才继续到下一行。
ComponentOrientation
| 构造方法摘要 | |
|---|---|
LayoutFocusTraversalPolicy() 构造一个 LayoutFocusTraversalPolicy。 |
|
| 方法摘要 | |
|---|---|
protected boolean |
accept(Component aComponent) 确定是否可以接受选择指定的 Component 作为新的焦点所有者。 |
Component |
getComponentAfter(Container aContainer, Component aComponent) 返回应在 aComponent 之后接收焦点的 Component。 |
Component |
getComponentBefore(Container aContainer, Component aComponent) 返回应在 aComponent 之前接收焦点的 Component。 |
Component |
getFirstComponent(Container aContainer) 返回遍历循环中的第一个 Component。 |
Component |
getLastComponent(Container aContainer) 返回遍历循环中的最后一个 Component。 |
| 从类 javax.swing.SortingFocusTraversalPolicy 继承的方法 |
|---|
getComparator, getDefaultComponent, getImplicitDownCycleTraversal, setComparator, setImplicitDownCycleTraversal |
| 从类 javax.swing.InternalFrameFocusTraversalPolicy 继承的方法 |
|---|
getInitialComponent |
| 从类 java.awt.FocusTraversalPolicy 继承的方法 |
|---|
getInitialComponent |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public LayoutFocusTraversalPolicy()
| 方法详细信息 |
|---|
public Component getComponentAfter(Container aContainer, Component aComponent)
默认情况下,LayoutFocusTraversalPolicy 会隐式将焦点传输给下一个循环。也就是说,在进行正常焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。
如果 aContainer 是焦点遍历策略提供者,则总是将焦点传输到下一个循环。
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子组件(可能是间接的),或 aContainer 自身
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null
public Component getComponentBefore(Container aContainer, Component aComponent)
默认情况下,LayoutFocusTraversalPolicy 会隐式将焦点传输给下一个循环。也就是说,在进行正常焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。
如果 aContainer 是焦点遍历策略提供者,则总是将焦点传输到下一个循环。
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子组件(可能是间接的),或 aContainer 自身
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null
public Component getFirstComponent(Container aContainer)
aContainer - 要返回其第一个 Component 的 aComponent 的焦点循环根,或焦点遍历策略提供者
IllegalArgumentException - 如果 aContainer 为 null
public Component getLastComponent(Container aContainer)
aContainer - 要返回其最后一个 Component 的 aComponent 的焦点循环根,或焦点遍历策略提供者
IllegalArgumentException - 如果 aContainer 为 null
protected boolean accept(Component aComponent)
Component 作为新的焦点所有者。此方法执行下列顺序的操作:
aComponent 是否可见、可显示、已启用以及是否可获得焦点。如果这些属性中任何一个为 false,则此方法返回 false。 aComponent 是 JTable 的一个实例,则返回 true。 aComponent 是 JComboBox 的一个实例,则返回 aComponent.getUI().isFocusTraversable(aComponent) 的值。 aComponent 是一个 JComponent,且具有一个既不为 null 也不为空的 JComponent.WHEN_FOCUSED InputMap,则返回 true。 DefaultFocusTraversalPolicy.accept(aComponent) 的值。
SortingFocusTraversalPolicy 中的
accept
aComponent - 将测试其是否适合作为焦点所有者的
Component
aComponent 是作为焦点所有者的有效选择,则返回
true;否则返回
false
Component.isVisible(),
Component.isDisplayable(),
Component.isEnabled(),
Component.isFocusable(),
ComboBoxUI.isFocusTraversable(javax.swing.JComboBox),
JComponent.getInputMap(int),
DefaultFocusTraversalPolicy.accept(java.awt.Component)