Module java.desktop
Package javax.swing

Class LayoutFocusTraversalPolicy

所有已实现的接口:
Serializable

public class LayoutFocusTraversalPolicy extends SortingFocusTraversalPolicy implements Serializable
基于组件的大小、位置和方向对组件进行排序的SortingFocusTraversalPolicy。根据它们的大小和位置,组件大致分为行和列。对于水平方向的容器,列从左到右或从右到左排列,行从上到下排列。对于垂直方向的容器,列从上到下排列,行从左到右或从右到左排列。有关更多信息,请参阅ComponentOrientation。在进行下一行之前,必须完全遍历一行中的所有列。
自版本:
1.4
参见:
  • Constructor Details

    • LayoutFocusTraversalPolicy

      public LayoutFocusTraversalPolicy()
      构造一个LayoutFocusTraversalPolicy。
  • Method Details

    • getComponentAfter

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

      默认情况下,LayoutFocusTraversalPolicy隐式地向下传递焦点循环。也就是说,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认焦点组件。可以使用setImplicitDownCycleTraversal方法禁用此行为。

      如果aContainer是焦点遍历策略提供者,则焦点始终向下传递。

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

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

      默认情况下,LayoutFocusTraversalPolicy隐式地向下传递焦点循环。也就是说,在正常的焦点遍历过程中,焦点循环根之后遍历的组件将是焦点循环根的默认焦点组件。可以使用setImplicitDownCycleTraversal方法禁用此行为。

      如果aContainer是焦点遍历策略提供者,则焦点始终向下传递。

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

      public Component getFirstComponent(Container aContainer)
      返回遍历循环中的第一个组件。当遍历在正向方向上环绕时,使用此方法确定下一个要聚焦的组件。
      覆盖:
      getFirstComponent 在类中 SortingFocusTraversalPolicy
      参数:
      aContainer - aComponent的焦点循环根或焦点遍历策略提供者,要返回其第一个组件的容器
      返回:
      aContainer中遍历循环的第一个组件,如果找不到合适的组件则返回null
      抛出:
      IllegalArgumentException - 如果aContainer为null
    • getLastComponent

      public Component getLastComponent(Container aContainer)
      返回遍历循环中的最后一个组件。当遍历在反向方向上环绕时,使用此方法确定下一个要聚焦的组件。
      覆盖:
      getLastComponent 在类中 SortingFocusTraversalPolicy
      参数:
      aContainer - aComponent的焦点循环根或焦点遍历策略提供者,要返回其最后一个组件的容器
      返回:
      aContainer中遍历循环的最后一个组件,如果找不到合适的组件则返回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是具有既不为null也不为空的JComponent.WHEN_FOCUSED InputMapJComponent实例,则返回true
      5. 返回DefaultFocusTraversalPolicy.accept(aComponent)的值。
      覆盖:
      accept 在类中 SortingFocusTraversalPolicy
      参数:
      aComponent - 要测试其作为焦点所有者的适合性的Component
      返回:
      如果aComponent是焦点所有者的有效选择,则返回true;否则返回false
      参见: