javax.swing

接口
异常
java.lang.Object
  继承者 java.awt.FocusTraversalPolicy
      继承者 javax.swing.InternalFrameFocusTraversalPolicy
          继承者 javax.swing.SortingFocusTraversalPolicy
              继承者 javax.swing.LayoutFocusTraversalPolicy
所有已实现的接口:
Serializable

public class LayoutFocusTraversalPolicy
     
extends SortingFocusTraversalPolicy
implements Serializable

根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。根据 Component 的大小和位置,可以将其大致归类为行和列。对于水平方向的 Container,列的排列顺序是从左到右或从右到左,行的排列顺序是从顶端到底部。对于垂直方向的 Container,列的排列顺序是从顶端到底部,行的排列顺序是从左到右或从右到左。有关更多信息,请参见 ComponentOrientation。在完全遍历一行中的所有列之后才继续到下一行。

从以下版本开始:
1.4
另请参见:
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
 

构造方法详细信息

LayoutFocusTraversalPolicy

public LayoutFocusTraversalPolicy()
构造一个 LayoutFocusTraversalPolicy。

方法详细信息

getComponentAfter

public Component getComponentAfter(Container aContainer,
                                   Component aComponent)
返回应在 aComponent 之后接收焦点的 Component。aContainer 必须是 aComponent 的焦点循环根。

默认情况下,LayoutFocusTraversalPolicy 会隐式将焦点传输给下一个循环。也就是说,在进行正常焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。

如果 aContainer 是焦点遍历策略提供者,则总是将焦点传输到下一个循环。

覆盖:
SortingFocusTraversalPolicy 中的 getComponentAfter
参数:
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子组件(可能是间接的),或 aContainer 自身
返回:
应该接收 aComponent 之后的焦点的 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getComponentBefore

public Component getComponentBefore(Container aContainer,
                                    Component aComponent)
返回应在 aComponent 之前接收焦点的 Component。aContainer 必须是 aComponent 的焦点循环根。

默认情况下,LayoutFocusTraversalPolicy 会隐式将焦点传输给下一个循环。也就是说,在进行正常焦点遍历期间,在焦点循环根后面遍历的 Component 将成为焦点循环根默认拥有焦点的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行为。

如果 aContainer 是焦点遍历策略提供者,则总是将焦点传输到下一个循环。

覆盖:
SortingFocusTraversalPolicy 中的 getComponentBefore
参数:
aContainer - aComponent 的焦点循环根,或焦点遍历策略提供者
aComponent - aContainer 的子组件(可能是间接的),或 aContainer 自身
返回:
应该接收 aComponent 之前的焦点的 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦点循环根或焦点遍历策略提供者,或者 aContainer 或 aComponent 为 null

getFirstComponent

public Component getFirstComponent(Container aContainer)
返回遍历循环中的第一个 Component。在进行正向遍历时,可用此方法确定拥有焦点的下一个 Component。

覆盖:
SortingFocusTraversalPolicy 中的 getFirstComponent
参数:
aContainer - 要返回其第一个 Component 的 aComponent 的焦点循环根,或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的第一个 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

getLastComponent

public Component getLastComponent(Container aContainer)
返回遍历循环中的最后一个 Component。在进行反向遍历时,可用此方法确定拥有焦点的下一个 Component。

覆盖:
SortingFocusTraversalPolicy 中的 getLastComponent
参数:
aContainer - 要返回其最后一个 Component 的 aComponent 的焦点循环根,或焦点遍历策略提供者
返回:
aContainer 的遍历循环中的最后一个 Component,如果无法找到合适的 Component,则返回 null
抛出:
IllegalArgumentException - 如果 aContainer 为 null

accept

protected boolean accept(Component aComponent)
确定是否可以接受选择指定的 Component 作为新的焦点所有者。此方法执行下列顺序的操作:
  1. 检查 aComponent 是否可见、可显示、已启用以及是否可获得焦点。如果这些属性中任何一个为 false,则此方法返回 false
  2. 如果 aComponentJTable 的一个实例,则返回 true
  3. 如果 aComponentJComboBox 的一个实例,则返回 aComponent.getUI().isFocusTraversable(aComponent) 的值。
  4. 如果 aComponent 是一个 JComponent,且具有一个既不为 null 也不为空的 JComponent.WHEN_FOCUSED InputMap,则返回 true
  5. 返回 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)