java.lang.Object java.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)