模块  java.desktop
软件包  java.awt

Class DefaultFocusTraversalPolicy

  • 实现的所有接口
    Serializable

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

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

    对等体的可聚焦性取决于实现。 Sun建议特定本机平台的所有实现构建具有相同可聚焦性的对等体。 针对Windows和Unix的建议是,Canvases,Labels,Panels,Scrollbars,ScrollPanes,Windows和轻量级组件具有不可聚焦的对等体,并且所有其他组件都具有可聚焦的对等体。 这些建议用于Sun AWT实现。 请注意,组件对等方的可聚焦性不同于组件本身的可聚焦性,也不会影响组件本身的可聚焦性。

    请参阅How to Use the Focus Subsystem ,在Java教程一节,并Focus Specification获取更多信息。

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

      • DefaultFocusTraversalPolicy

        public DefaultFocusTraversalPolicy()
    • 方法详细信息

      • accept

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