Module  java.desktop
软件包  java.awt

Class DefaultFocusTraversalPolicy

  • All Implemented Interfaces:
    Serializable


    public class DefaultFocusTraversalPolicy
    extends ContainerOrderFocusTraversalPolicy
    FocusTraversalPolicy根据容器中子组件的顺序确定遍历顺序。 从特定焦点循环根中,策略对Component层次结构进行预先遍历,并根据Container.getComponents()返回的数组的顺序遍历Container的子Container.getComponents() 层级结构中不可见和可显示的部分将不被搜索。

    如果客户端代码通过覆盖Component.isFocusTraversable()Component.isFocusable()或调用Component.setFocusable()明确设置组件的可Component.setFocusable() ,则DefaultFocusTraversalPolicy的行为与ContainerOrderFocusTraversalPolicy完全相同。 但是,如果组件依赖于默认焦点,则DefaultFocusTraversalPolicy将拒绝所有具有不可聚焦对象的组件。 这是所有AWT容器的默认FocusTraversalPolicy。

    对等体的聚焦性取决于实现。 Sun建议特定本地平台的所有实现以相同的可重定性构建对等体。 Windows和Unix的建议是:画布,标签,面板,滚动条,ScrollPanes,Windows和轻量级组件具有不可对焦的对等体,所有其他组件都具有可聚焦的对等体。 这些建议用于Sun AWT实现。 请注意,组件对等体的可集中性与组件本身的可重点性不同,也不影响组件本身的可重点性。

    请参阅How to Use the Focus SubsystemJava教程一节,以及有关详细信息的Focus Specification

    从以下版本开始:
    1.4
    另请参见:
    Container.getComponents()Component.isFocusable()Component.setFocusable(boolean)Serialized Form
    • 构造方法详细信息

      • DefaultFocusTraversalPolicy

        public DefaultFocusTraversalPolicy​()
    • 方法详细信息

      • accept

        protected boolean accept​(Component aComponent)
        确定组件是否是新焦点所有者的可接受选择。 组件必须可见,可显示和启用才能被接受。 如果客户端代码通过覆盖Component.isFocusTraversable()Component.isFocusable()或通过调用Component.setFocusable()明确设置了组件的可Component.setFocusable() ,则当且仅当该组件可Component.setFocusable() ,该组件将被接受。 然而,如果组件依赖于默认的可重定向性,则所有画布,标签,面板,滚动条,ScrollPanes,Windows和轻量级组件都将被拒绝。
        重写:
        acceptContainerOrderFocusTraversalPolicy
        参数
        aComponent - 要测试适合作为焦点所有者的组件
        结果
        true如果一个组件满足上述要求; 否则为false