模块  java.desktop
软件包  javax.swing

Class SortingFocusTraversalPolicy

  • 已知直接子类:
    LayoutFocusTraversalPolicy

    public class SortingFocusTraversalPolicy
    extends InternalFrameFocusTraversalPolicy
    FocusTraversalPolicy,它通过基于给定的比较器对焦点遍历循环的组件进行排序来确定遍历顺序。 将不包括组件层次结构中不可见和可显示的部分。

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

    默认情况下,此类的方法仅在可见,可显示,启用和可聚焦时才返回Component。 子类可以通过重写accept方法来修改此行为。

    此政策考虑到focus traversal policy providers 搜索第一个/最后一个/下一个/上一个组件时,如果遇到焦点遍历策略提供程序,则使用其焦点遍历策略执行搜索操作。

    从以下版本开始:
    1.4
    另请参见:
    Comparator
    • 构造方法详细信息

      • SortingFocusTraversalPolicy

        protected SortingFocusTraversalPolicy()
        构造一个没有Comparator的SortingFocusTraversalPolicy。 在焦点循环根或KeyboardFocusManager上安装此setComparator之前,子类必须使用setComparator设置Comparator。
      • SortingFocusTraversalPolicy

        public SortingFocusTraversalPolicy​(Comparator<? super Component> comparator)
        使用指定的Comparator构造SortingFocusTraversalPolicy。
        参数
        comparator - 排序方式 Comparator
    • 方法详细信息

      • getComponentAfter

        public Component getComponentAfter​(Container aContainer,
                                           Component aComponent)
        返回应在aComponent之后接收焦点的Component。 aContainer必须是aComponent的焦点循环根或焦点遍历策略提供者。

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

        如果aContainer为focus traversal policy provider ,则焦点始终向下传输。

        Specified by:
        getComponentAfter ,课程 FocusTraversalPolicy
        参数
        aContainer - aComponent或焦点遍历策略提供程序的焦点循环根
        aComponent - aContainer的一个(可能是间接的)子级,或者是一个 aComponent本身
        结果
        应该在aComponent之后接收焦点的Component,如果找不到合适的Component,则返回null
        异常
        IllegalArgumentException - 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
      • getComponentBefore

        public Component getComponentBefore​(Container aContainer,
                                            Component aComponent)
        返回应在aComponent之前接收焦点的Component。 aContainer必须是aComponent的焦点循环根或焦点遍历策略提供者。

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

        如果aContainer为focus traversal policy provider ,则焦点始终向下传输。

        Specified by:
        getComponentBefore在课程 FocusTraversalPolicy
        参数
        aContainer - aComponent或焦点遍历策略提供程序的焦点循环根
        aComponent - aContainer的一个(可能是间接的)子级,或者是一个 aComponent本身
        结果
        应该在aComponent之前接收焦点的Component,如果找不到合适的Component,则返回null
        异常
        IllegalArgumentException - 如果aContainer不是aComponent或焦点遍历策略提供程序的焦点循环根,或者aContainer或aComponent为null
      • getFirstComponent

        public Component getFirstComponent​(Container aContainer)
        返回遍历循环中的第一个Component。 此方法用于确定当遍历向前包裹时要聚焦的下一个Component。
        Specified by:
        getFirstComponent ,类 FocusTraversalPolicy
        参数
        aContainer - 要返回其第一个Component的aComponent或焦点遍历策略提供程序的焦点循环根
        结果
        aContainer的遍历循环中的第一个Component,如果找不到合适的Component,则返回null
        异常
        IllegalArgumentException - 如果aContainer为null
      • getLastComponent

        public Component getLastComponent​(Container aContainer)
        返回遍历循环中的最后一个Component。 此方法用于确定当遍历以反向方式换行时要关注的下一个Component。
        Specified by:
        getLastComponent在类 FocusTraversalPolicy
        参数
        aContainer - aComponent的焦点循环根或焦点遍历策略提供程序,其最后一个Component将被返回
        结果
        aContainer的遍历循环中的最后一个Component,如果找不到合适的Component,则返回null
        异常
        IllegalArgumentException - 如果aContainer为null
      • getDefaultComponent

        public Component getDefaultComponent​(Container aContainer)
        返回要关注的默认Component。 当遍历到以aContainer为根的新焦点遍历循环时,此Component将是第一个获得焦点的组件。 此方法的默认实现返回与getFirstComponent相同的组件。
        Specified by:
        getDefaultComponentFocusTraversalPolicy
        参数
        aContainer - aComponent的焦点循环根或焦点遍历策略提供程序,其默认Component将返回
        结果
        aContainer的遍历循环中的默认Component,如果找不到合适的Component,则返回null
        异常
        IllegalArgumentException - 如果aContainer为null
        另请参见:
        getFirstComponent(java.awt.Container)
      • setImplicitDownCycleTraversal

        public void setImplicitDownCycleTraversal​(boolean implicitDownCycleTraversal)
        设置此SortingFocusTraversalPolicy是否隐式地向下传递焦点。 如果是true ,则在正常焦点遍历期间,在焦点循环根之后遍历组件将成为焦点循环根的默认组件。 如果是false ,则将遍历以指定焦点循环根为根的焦点遍历循环中的下一个Component。 此属性的默认值为true
        参数
        implicitDownCycleTraversal - 此SortingFocusTraversalPolicy是否隐式地向下传递焦点
        另请参见:
        getImplicitDownCycleTraversal()getFirstComponent(java.awt.Container)
      • getImplicitDownCycleTraversal

        public boolean getImplicitDownCycleTraversal()
        返回此SortingFocusTraversalPolicy是否隐式地向下传递焦点。 如果是true ,则在正常焦点遍历期间,在焦点循环根之后遍历组件将成为焦点循环根的默认组件。 如果是false ,则将遍历以指定焦点循环根为根的焦点遍历循环中的下一个Component。
        结果
        此SortingFocusTraversalPolicy是否隐式地向下传递焦点
        另请参见:
        setImplicitDownCycleTraversal(boolean)getFirstComponent(java.awt.Container)
      • setComparator

        protected void setComparator​(Comparator<? super Component> comparator)
        设置比较器,该比较器将用于在焦点遍历循环中对组件进行排序。
        参数
        comparator - 将用于排序的比较器
      • getComparator

        protected Comparator<? super Component> getComparator()
        返回Comparator,它将用于在焦点遍历循环中对Components进行排序。
        结果
        将用于排序的比较器
      • accept

        protected boolean accept​(Component aComponent)
        确定Component是否是新焦点所有者可接受的选择。 默认情况下,当且仅当它是可见,可显示,启用和可聚焦时,此方法才会接受Component。
        参数
        aComponent - 要测试其作为焦点所有者的适合度的组件
        结果
        true如果aComponent是可见的,可显示的,启用的和可聚焦的; 否则为false