模块 java.desktop
 java.awt

类 DefaultFocusTraversalPolicy

所有已实现的接口:
Serializable

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

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

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

请参阅 如何使用焦点子系统The Java Tutorial 中的一个部分和 对焦规格 了解更多信息。

自从:
1.4
参见:
  • 构造方法详细信息

    • DefaultFocusTraversalPolicy

      public DefaultFocusTraversalPolicy()
      构造一个 DefaultFocusTraversalPolicy
  • 方法详情

    • accept

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