Module  java.desktop
软件包  java.awt

Class Container

    • 构造方法详细信息

      • Container

        public Container​()
        构造一个新的容器。 容器可以直接扩展,但在这种情况下是轻量级的,并且必须包含在本机组件树中较高的位置的父级。 (例如Frame)。
    • 方法详细信息

      • getComponentCount

        public int getComponentCount​()
        获取此面板中的组件数量。

        注意:此方法应在AWT树锁下调用。

        结果
        该面板中的组件数量。
        从以下版本开始:
        1.1
        另请参见:
        getComponent(int)Component.getTreeLock()
      • countComponents

        @Deprecated
        public int countComponents​()
        已过时。 从JDK 1.1版开始,由getComponentCount()替换。
        返回此容器中的组件数。
        结果
        该容器中的组件数
      • getComponent

        public Component getComponent​(int n)
        获取此容器中的第n个组件。

        注意:此方法应在AWT树锁下调用。

        参数
        n - 要获取的组件的索引。
        结果
        这个容器中的 n 组件。
        异常
        ArrayIndexOutOfBoundsException - 如果第n 值不存在。
        另请参见:
        Component.getTreeLock()
      • getComponents

        public Component[] getComponents​()
        获取此容器中的所有组件。

        注意:此方法应在AWT树锁下调用。

        结果
        这个容器中的所有组件的数组。
        另请参见:
        Component.getTreeLock()
      • getInsets

        public Insets getInsets​()
        确定此容器的插入,这表示容器边框的大小。

        例如, Frame对象具有对应于框架的标题栏的高度的顶部插入。

        结果
        这个容器的插图。
        从以下版本开始:
        1.1
        另请参见:
        InsetsLayoutManager
      • insets

        @Deprecated
        public Insets insets​()
        已过时。 从JDK 1.1版开始,由getInsets()替代。
        返回此容器的插入。
        结果
        这个容器的插图
      • setComponentZOrder

        public void setComponentZOrder​(Component comp,
                                       int index)
        将指定的组件移动到容器中指定的z顺序索引。 z次序确定组件被绘制的顺序; 首先使用最高z阶涂料的组分,最后使用最低z阶涂料的组分。 在组件重叠的地方,具有较低z阶的组件涂覆在具有较高z阶的组件上。

        如果组件是某个其他容器的子对象,则在添加到此容器之前将其从该容器中删除。 此方法与java.awt.Container.add(Component, int)之间的重要区别在于,该方法不会在组件中调用removeNotify ,同时将其从其先前的容器中删除,除非必要时,以及底层本机窗口系统允许。 这样,如果组件具有键盘焦点,则在移动到新位置时会保持焦点。

        此属性保证仅适用于轻型非Container组件。

        该方法更改布局相关信息,因此使组件层次结构无效。

        注意 :并非所有平台都支持将重量级组件的z顺序从一个容器更改为另一个,而无需调用removeNotify 无法检测平台是否支持此功能,因此开发人员不应作出任何假设。

        参数
        comp - 要移动的组件
        index - 容器列表中插入组件的位置,其中 getComponentCount()附加到最后
        异常
        NullPointerException - 如果 compnull
        IllegalArgumentException - 如果 comp是容器的父母之一
        IllegalArgumentException -如果 index不在范围 [0, getComponentCount()]用于容器之间移动时,或不在范围 [0, getComponentCount()-1]用于容器内部移动
        IllegalArgumentException - 如果向其自身添加容器
        IllegalArgumentException - 如果将 Window添加到容器中
        从以下版本开始:
        1.5
        另请参见:
        getComponentZOrder(java.awt.Component)invalidate()
      • getComponentZOrder

        public int getComponentZOrder​(Component comp)
        返回容器内组件的z-order索引。 组件在z阶层次中越高,其索引越低。 最后一个z顺序索引最低的组件,最重要的是其他子组件。
        参数
        comp - 要查询的组件
        结果
        组件的z阶索引; 否则返回-1,如果组件是null或不属于容器
        从以下版本开始:
        1.5
        另请参见:
        setComponentZOrder(java.awt.Component, int)
      • addImpl

        protected void addImpl​(Component comp,
                               Object constraints,
                               int index)
        在指定的索引处将指定的组件添加到此容器。 该方法还通过布局管理器通过addLayoutComponent方法使用指定的约束对象将组件添加到此容器的布局。

        约束由正在使用的特定布局管理器定义。 例如, BorderLayout类定义了五个约束: BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.EASTBorderLayout.WEST ,和BorderLayout.CENTER

        GridBagLayout类需要一个GridBagConstraints对象。 未通过正确类型的约束对象会导致一个IllegalArgumentException

        如果当前的布局管理器实现了LayoutManager2 ,那么就调用了LayoutManager2.addLayoutComponent(Component,Object) 如果当前的布局管理器不实现LayoutManager2 ,并且约束是一个String ,那么它将调用LayoutManager.addLayoutComponent(String,Component)

        如果组件不是此容器的祖先,并且具有非空父项,则在将其添加到此容器之前,它将从其当前父进程中删除。

        如果程序需要跟踪每个添加到容器的请求,那么这种方法将会覆盖所有其他添加方法。 一个重写方法通常应该包括调用超类的方法版本:

        super.addImpl(comp, constraints, index)

        该方法更改布局相关信息,因此使组件层次结构无效。 如果容器已经被显示,则此后必须验证层次结构,以显示添加的组件。

        参数
        comp - 要添加的组件
        constraints - 表示此组件的布局约束的对象
        index - 容器列表中要插入组件的位置,其中 -1表示附加到最后
        异常
        IllegalArgumentException - 如果index无效; 如果comp是此容器的小孩,则有效范围为[-1, getComponentCount()-1] ; 如果组件不是此容器的子级,则有效范围为[-1, getComponentCount()]
        IllegalArgumentException - 如果 comp是此容器的祖先
        IllegalArgumentException - 如果向容器添加窗口
        NullPointerException - 如果 compnull
        从以下版本开始:
        1.1
        另请参见:
        add(Component)add(Component, int)add(Component, java.lang.Object)invalidate()LayoutManagerLayoutManager2
      • remove

        public void remove​(int index)
        从此容器中删除由index指定的组件。 此方法还通知布局管理器通过removeLayoutComponent方法从该容器的布局中删除组件。

        该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。

        参数
        index - 要删除的组件的索引
        异常
        ArrayIndexOutOfBoundsException - 如果 index不在范围 [0, getComponentCount()-1]
        从以下版本开始:
        1.1
        另请参见:
        add(java.awt.Component)invalidate()validate()getComponentCount()
      • remove

        public void remove​(Component comp)
        从此容器中删除指定的组件。 此方法还通知布局管理器通过removeLayoutComponent方法从该容器的布局中删除组件。

        该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。

        参数
        comp - 要删除的组件
        异常
        NullPointerException - 如果 compnull
        另请参见:
        add(java.awt.Component)invalidate()validate()remove(int)
      • removeAll

        public void removeAll​()
        从此容器中删除所有组件。 此方法还通知布局管理器通过removeLayoutComponent方法从该容器的布局中删除组件。

        该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。

        另请参见:
        add(java.awt.Component)remove(int)invalidate()
      • setLayout

        public void setLayout​(LayoutManager mgr)
        设置此容器的布局管理器。

        该方法更改布局相关信息,因此使组件层次结构无效。

        参数
        mgr - 指定的布局管理器
        另请参见:
        doLayout()getLayout()invalidate()
      • layout

        @Deprecated
        public void layout​()
        已过时。 从JDK 1.1版开始,由doLayout()替代。
        重写:
        layoutComponent
      • isValidateRoot

        public boolean isValidateRoot​()
        指示此容器是否为验证根

        布局相关的更改(例如验证根后代的边界)不会影响验证根父的布局。 当方法遇到有效根时,这种特性使invalidate()方法能够停止使组件层次结构无效。 但是,为了保留向后兼容性,只有当java.awt.smartInvalidate系统属性值设置为true时, java.awt.smartInvalidate启用此新的优化行为。

        如果组件层次结构包含有效的根,并且启用了新的优化的invalidate()行为,则必须在先前无效组件的验证根上调用validate()方法,以便validate()恢复层次结构的有效性。 否则,应使用顶级容器(如Frame对象)调用validate()方法来恢复组件层次结构的有效性。

        Window类和Applet类是AWT中的有效根。 Swing引入更多有效的根。

        结果
        该容器是否是有效的根
        从以下版本开始:
        1.7
        另请参见:
        invalidate()Component.invalidate()JComponent.isValidateRoot()JComponent.revalidate()
      • validate

        public void validate​()
        验证此容器及其所有子组件。

        验证容器意味着布置其子组件。 与布局相关的更改,例如设置组件的边界,或者向容器添加组件,会自动使容器无效。 请注意,容器的祖先也可能无效(详细信息请参阅Component.invalidate() )因此,要恢复层次结构的有效性,应在层次结构的最上层无效容器上调用validate()方法。

        验证容器可能是相当耗时的操作。 出于性能原因,开发人员可能推迟层次结构的验证,直到一组布局相关的操作完成,例如在将所有子项添加到容器之后。

        如果这个Container无效,此方法调用validateTree方法并将此Container标记为有效。 否则,不执行任何操作。

        重写:
        validateComponent
        另请参见:
        add(java.awt.Component)invalidate()isValidateRoot()JComponent.revalidate()validateTree()
      • validateTree

        protected void validateTree​()
        递归地下降容器树,并重新计算标记为需要的任何子树(标记为无效的)的布局。 应该通过调用此方法的方法提供同步: validate
        另请参见:
        doLayout()validate()
      • setFont

        public void setFont​(Font f)
        设置此容器的字体。

        该方法更改布局相关信息,因此使组件层次结构无效。

        重写:
        setFontComponent
        参数
        f - 成为此容器字体的字体。
        从以下版本开始:
        1.0
        另请参见:
        Component.getFont()invalidate()
      • preferredSize

        @Deprecated
        public Dimension preferredSize​()
        已过时。 从JDK 1.1版开始,由getPreferredSize()替代。
        描述从类复制: Component
        返回组件的首选大小。
        重写:
        preferredSizeComponent
        结果
        该组件的首选尺寸
      • minimumSize

        @Deprecated
        public Dimension minimumSize​()
        已过时。 从JDK 1.1版开始,由getMinimumSize()替代。
        描述从类复制: Component
        返回此组件的最小大小。
        重写:
        minimumSizeComponent
        结果
        该组件的最小尺寸
      • getAlignmentX

        public float getAlignmentX​()
        返回沿x轴的对齐方式。 这指定了组件如何相对于其他组件进行对齐。 该值应为0到1之间的数字,其中0表示原点对齐,1对齐最远离原点,0.5为中心等。
        重写:
        getAlignmentXComponent
        结果
        该组件的水平对齐
      • getAlignmentY

        public float getAlignmentY​()
        返回沿着y轴的对齐。 这指定了组件如何相对于其他组件进行对齐。 该值应为0到1之间的数字,其中0表示原点对齐,1对齐最远离原点,0.5为中心等。
        重写:
        getAlignmentYComponent
        结果
        该组件的垂直对齐
      • paint

        public void paint​(Graphics g)
        涂上容器 这会将油漆转移到任何这个容器的小孩的轻量级组件。 如果重新实现此方法,则应调用super.paint(g),以便轻量级组件正确呈现。 如果一个子组件被当前的剪裁设置(g)全部剪除,那么paint()将不会转发给该小孩。
        重写:
        paintComponent
        参数
        g - 指定的图形窗口
        另请参见:
        Component.update(Graphics)
      • update

        public void update​(Graphics g)
        更新容器。 这将更新转发给任何作为此容器的子级的轻量级组件。 如果重新实现此方法,则应调用super.update(g),以便正确渲染轻量级组件。 如果子组件被目前的削减设置(g)修剪完毕,则update()不会被转发给该小孩。
        重写:
        updateComponent
        参数
        g - 指定的图形窗口
        另请参见:
        Component.update(Graphics)
      • print

        public void print​(Graphics g)
        打印容器。 这将打印转发到任何这个容器的孩子的轻量级组件。 如果重新实现此方法,则应调用super.print(g),以便正确渲染轻量级组件。 如果子组件完全被g中的剪切设置所限制,则print()将不会转发给该小孩。
        重写:
        printComponent
        参数
        g - 指定的图形窗口
        另请参见:
        Component.update(Graphics)
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        返回当前注册为FooListener的所有对象的数组,这个Container FooListener使用addFooListener方法进行注册。

        您可以使用类文字指定listenerType参数,如FooListener.class 例如,您可以使用以下代码查询Container c的容器侦听器:

          ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class)); 
        如果没有这样的侦听器存在,这个方法返回一个空数组。
        重写:
        getListenersComponent
        参数类型
        T - 侦听器的类型
        参数
        listenerType - 所请求的侦听器的类型; 此参数应指定从java.util.EventListener下降的接口
        结果
        在此容器上注册为 FooListener的所有对象的数组,如果没有添加此类侦听器,则为空数组
        异常
        ClassCastException - 如果 listenerType未指定实现 java.util.EventListener的类或接口
        NullPointerException - 如果 listenerTypenull
        从以下版本开始:
        1.3
        另请参见:
        getContainerListeners()
      • processContainerEvent

        protected void processContainerEvent​(ContainerEvent e)
        通过将容器事件发送到任何已注册的ContainerListener对象来处理容器事件。 注意:除非为此组件启用容器事件,否则不会调用此方法; 发生以下情况之一时:
        • ContainerListener对象通过addContainerListener注册
        • 容器事件通过enableEvents启用

        请注意,如果事件参数为null则行为未指定,并可能导致异常。

        参数
        e - 容器事件
        另请参见:
        Component.enableEvents(long)
      • deliverEvent

        @Deprecated
        public void deliverEvent​(Event e)
        已过时。 从JDK 1.1版开始,替换为dispatchEvent(AWTEvent e)
        重写:
        deliverEventComponent
        参数
        e - 交付事件
      • getComponentAt

        public Component getComponentAt​(int x,
                                        int y)
        找到包含x,y位置的组件。 在组件中存在重叠的情况下,返回最顶层的子组件。 这通过找到通过Component.contains()声明包含给定点的索引0最接近的组件来确定,除了具有本机对等体的组件优先于不具有本机对等体的组件(即,轻量级组件)之外。
        重写:
        getComponentAtComponent
        参数
        x - x坐标
        y - y坐标
        结果
        如果组件不包含位置,则为null。 如果请求点没有子组件,并且该点在容器的边界内,则返回容器本身; 否则返回最顶端的孩子。
        从以下版本开始:
        1.1
        另请参见:
        Component.contains(int, int)
      • locate

        @Deprecated
        public Component locate​(int x,
                                int y)
        已过时。 从JDK 1.1版开始,由getComponentAt(int, int)代替。
        描述从类复制: Component
        返回占据指定位置的组件(此组件或直接子组件,如果前两个都不占用该位置,则返回null)。
        重写:
        locateComponent
        参数
        x - 搜索组件的 x坐标
        y - 用于搜索组件的 y坐标
        结果
        指定位置的组件或 null
      • getMousePosition

        public Point getMousePosition​(boolean allowChildren)
                               throws HeadlessException
        如果Container在鼠标指针下方,则返回鼠标指针在这个Container的坐标空间中的Container ,否则返回null 该方法类似于Component.getMousePosition() ,但可以考虑Container的孩子。 如果allowChildrenfalse ,则只有当鼠标指针直接位于false ,该方法才会返回非空值,而不是Container上方的部分上方。 如果allowChildrentrue ,如果鼠标指针高于Container或其任何后代,则此方法返回非空值。
        参数
        allowChildren - 如果孩子应该被考虑, allowChildren true
        结果
        相对于此 Component鼠标坐标,或null
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.5
        另请参见:
        Component.getMousePosition()
      • findComponentAt

        public Component findComponentAt​(int x,
                                         int y)
        找到包含指定位置的可见子组件。 在组件中存在重叠的情况下,返回最顶层的子组件。 如果包含子组件是容器,则此方法将继续搜索最深的嵌套子组件。 在搜索过程中忽略不可见的组件。

        getComponentAt方法与getComponentAt不同,因为getComponentAt只搜索Container的直接子对象; 如果包含的组件是一个Container,那么findComponentAt将搜索该子节点以查找嵌套组件。

        参数
        x - x坐标
        y - y坐标
        结果
        如果组件不包含位置,则为null。 如果在请求点没有子组件,并且该点在容器的边界内,则返回容器本身。
        从以下版本开始:
        1.2
        另请参见:
        Component.contains(int, int)getComponentAt(int, int)
      • findComponentAt

        public Component findComponentAt​(Point p)
        找到包含指定点的可见子组件。 在组件中存在重叠的情况下,返回最顶层的子组件。 如果包含子组件是容器,则此方法将继续搜索最深的嵌套子组件。 在搜索过程中忽略不可见的组件。

        getComponentAt方法与getComponentAt不同,因为getComponentAt只搜索Container的直接子对象; 如果包含的组件是一个Container,那么findComponentAt将搜索该子节点以查找嵌套组件。

        参数
        p - 点。
        结果
        如果组件不包含位置,则为null。 如果在请求点没有子组件,并且该点在容器的边界内,则返回容器本身。
        异常
        NullPointerException - 如果 pnull
        从以下版本开始:
        1.2
        另请参见:
        Component.contains(int, int)getComponentAt(int, int)
      • addNotify

        public void addNotify​()
        通过将此容器连接到本机屏幕资源来使此容器显示。 使容器显示可以使所有的孩子都可以显示。 该方法由工具包内部调用,不应由程序直接调用。
        重写:
        addNotifyComponent
        另请参见:
        Component.isDisplayable()removeNotify()
      • removeNotify

        public void removeNotify​()
        通过删除其与其本机屏幕资源的连接,使此容器不可显示。 使容器不可显示将导致其所有的孩子都变得不可显示。 该方法在内部被工具包调用,不应该被程序直接调用。
        重写:
        removeNotifyComponent
        另请参见:
        Component.isDisplayable()addNotify()
      • isAncestorOf

        public boolean isAncestorOf​(Component c)
        检查组件是否包含在此容器的组件层次结构中。
        参数
        c - 组件
        结果
        true如果是祖先, 否则为false
        从以下版本开始:
        1.1
      • paramString

        protected String paramString​()
        返回一个表示Container状态的字符串。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringComponent
        结果
        该容器的参数字符串
      • list

        public void list​(PrintStream out,
                         int indent)
        将此容器的列表打印到指定的输出流。 列表从指定的缩进开始。

        容器的直接儿童印有压痕indent+1 这些孩子的孩子们打印在indent+2等等。

        重写:
        listComponent
        参数
        out - 打印流
        indent - 要缩进的空格数
        异常
        NullPointerException - 如果 outnull
        从以下版本开始:
        1.0
        另请参见:
        Component.list(java.io.PrintStream, int)
      • list

        public void list​(PrintWriter out,
                         int indent)
        从指定的缩进开始列出指定的打印作者的列表。

        容器的直接子项印有压痕indent+1 这些孩子的孩子打印在indent+2等等。

        重写:
        list中的 Component
        参数
        out - 打印作者
        indent - 缩进的空格数
        异常
        NullPointerException - 如果 outnull
        从以下版本开始:
        1.1
        另请参见:
        Component.list(java.io.PrintWriter, int)
      • setFocusTraversalKeys

        public void setFocusTraversalKeys​(int id,
                                          Set<? extends AWTKeyStroke> keystrokes)
        设置此容器的给定遍历操作的焦点遍历键。

        容器的焦点遍历键的默认值是依赖于实现的。 Sun建议特定本地平台的所有实现使用相同的默认值。 Windows和Unix的建议如下。 这些建议用于Sun AWT实现。

        Recommended default values for a Container's focus traversal keys Identifier Meaning Default KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS Normal forward keyboard traversal TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS Normal reverse keyboard traversal SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS Go up one focus traversal cycle none KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS Go down one focus traversal cycle none
        要禁用遍历键,请使用空的Set; 推荐使用Collections.EMPTY_SET。

        使用AWTKeyStroke API,客户端代码可以指定两个特定的KeyEvent,KEY_PRESSED或KEY_RELEASED中的哪一个,焦点遍历操作将发生。 然而,无论指定了哪个KeyEvent,与焦点遍历密钥相关的所有KeyEvent都将被使用,包括关联的KEY_TYPED事件,并且不会被分派到任何Container。 指定一个KEY_TYPED事件作为映射到焦点遍历操作的运行时错误,或将同一事件映射到多个默认焦点遍历操作。

        如果为Set指定了null值,则此Container将从其父项继承Set。 如果此容器的所有祖先对于Set指定了空值,则使用当前的KeyboardFocusManager的默认Set。

        这个方法可能会抛出一个ClassCastException如果Object中有keystrokes不是AWTKeyStroke

        重写:
        setFocusTraversalKeysComponent
        参数
        id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一
        keystrokes - 指定操作的AWTKeyStroke集
        异常
        IllegalArgumentException - 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS中的一个,或者键击包含null,或者如果任何键击代表KEY_TYPED事件,或者如果任何键击已经映射到另一个焦点遍历此容器的操作
        从以下版本开始:
        1.4
        另请参见:
        getFocusTraversalKeys(int)KeyboardFocusManager.FORWARD_TRAVERSAL_KEYSKeyboardFocusManager.BACKWARD_TRAVERSAL_KEYSKeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYSKeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
      • areFocusTraversalKeysSet

        public boolean areFocusTraversalKeysSet​(int id)
        返回是否为此容器显式定义了给定焦点遍历操作的聚焦遍历键集。 如果此方法返回false ,则此Container将从祖先继承Set,或从当前的KeyboardFocusManager继承。
        重写:
        areFocusTraversalKeysSetComponent
        参数
        id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS之一,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
        结果
        true如果为该组件明确定义了给定焦点遍历操作的聚焦遍历键集合; false否则。
        异常
        IllegalArgumentException - 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS中的一个
        从以下版本开始:
        1.4
      • isFocusCycleRoot

        public boolean isFocusCycleRoot​(Container container)
        返回指定的Container是否是此Container的焦点遍历循环的焦点循环根。 每个焦点遍历循环只有一个焦点循环根,而不是焦点循环根的每个容器只属于单个焦点遍历循环。 作为焦点循环根的容器属于两个循环:一个根据容器本身,一个根据容器最近的聚焦循环根祖先。 在这种情况下,这种方法将返回true这两个容器。
        重写:
        isFocusCycleRootComponent
        参数
        container - 要测试的容器
        结果
        true如果指定的Container是此Container的焦点true根; 否则为false
        从以下版本开始:
        1.4
        另请参见:
        isFocusCycleRoot()
      • setFocusTraversalPolicy

        public void setFocusTraversalPolicy​(FocusTraversalPolicy policy)
        设置焦点遍历策略,将管理此Container的子项的键盘遍历,如果此Container是焦点循环根。 如果参数为null,则此Container将从其focus-cycle-root祖先继承其策略。 如果参数为非空值,则该策略将被所有不具有自己的键盘遍历策略的focus-cycle-root子节点继承(递归地,它们的焦点循环根节点)。

        如果此容器不是焦点循环根,则策略将被记住,但不会由此或任何其他容器使用或继承,直到此容器成为焦点循环根。

        参数
        policy - 此容器的新焦点遍历策略
        从以下版本开始:
        1.4
        另请参见:
        getFocusTraversalPolicy()setFocusCycleRoot(boolean)isFocusCycleRoot(java.awt.Container)
      • isFocusTraversalPolicySet

        public boolean isFocusTraversalPolicySet​()
        返回是否为此Container显式设置了重点遍历策略。 如果此方法返回false ,则此Container将从祖先继承其焦点遍历策略。
        结果
        true如果已经为此Container显式设置了焦点遍历策略; false否则。
        从以下版本开始:
        1.4
      • isFocusCycleRoot

        public boolean isFocusCycleRoot​()
        返回此容器是否是焦点遍历循环的根。 一旦焦点进入遍历循环,通常不能通过焦点遍历离开它,除非按下了上下循环键之一。 正常遍历仅限于此Container,并且所有这些Container的后代不是下焦点循环根的后代。 请注意,FocusTraversalPolicy可能会弯曲这些限制。 例如,ContainerOrderFocusTraversalPolicy支持隐式的下循环遍历。
        结果
        这个容器是否是焦点遍历循环的根
        从以下版本开始:
        1.4
        另请参见:
        setFocusCycleRoot(boolean)setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)getFocusTraversalPolicy()ContainerOrderFocusTraversalPolicy
      • transferFocusDownCycle

        public void transferFocusDownCycle​()
        将焦点转移到一个焦点遍历周期。 如果此容器是焦点循环根,则将焦点所有者设置为此Container的默认组件以进行对焦,并将当前焦点循环根设置为此Container。 如果此Container不是焦点循环根,则不会发生焦点遍历操作。
        从以下版本开始:
        1.4
        另请参见:
        Component.requestFocus()isFocusCycleRoot(java.awt.Container)setFocusCycleRoot(boolean)
      • addPropertyChangeListener

        public void addPropertyChangeListener​(PropertyChangeListener listener)
        将PropertyChangeListener添加到侦听器列表。 监听器已注册到此类的所有绑定属性,包括以下内容:
        • 这个容器的字体(“font”)
        • 此容器的背景颜色(“背景”)
        • 这个容器的前景色(“前景”)
        • 这个集装箱的聚焦性(“可聚焦”)
        • 此容器的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
        • 此容器的一组FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
        • 此容器的一组BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
        • 这个容器的一套UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)
        • 这个容器的一套DOWN_CYCLE_TRAVERSAL_KEYS(“downCycleFocusTraversalKeys”)
        • 这个容器的焦点遍历策略(“focusTraversalPolicy”)
        • 这个容器的焦点循环根状态(“focusCycleRoot”)
        请注意,如果此容器是继承绑定属性,则不会在继承的属性中更改事件时触发任何事件。

        如果侦听器为空,则不会抛出异常,也不会执行任何操作。

        重写:
        addPropertyChangeListenerComponent
        参数
        listener - 要添加的PropertyChangeListener
        另请参见:
        Component.removePropertyChangeListener(java.beans.PropertyChangeListener)addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
      • addPropertyChangeListener

        public void addPropertyChangeListener​(String propertyName,
                                              PropertyChangeListener listener)
        将PropertyChangeListener添加到特定属性的侦听器列表中。 指定的属性可能是用户定义的,也可能是以下默认值之一:
        • 这个容器的字体(“font”)
        • 此容器的背景颜色(“背景”)
        • 这个容器的前景色(“前景”)
        • 这个集装箱的聚焦性(“可聚焦”)
        • 此容器的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
        • 此容器的一组FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
        • 此容器的一组BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
        • 这个容器的一套UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)
        • 这个容器的一套DOWN_CYCLE_TRAVERSAL_KEYS(“downCycleFocusTraversalKeys”)
        • 这个容器的焦点遍历策略(“focusTraversalPolicy”)
        • 这个容器的焦点循环根状态(“focusCycleRoot”)
        • 该容器的焦点遍历策略提供者状态(“focusTraversalPolicyProvider”)
        • 该容器的焦点遍历策略提供者状态(“focusTraversalPolicyProvider”)
        请注意,如果此容器是继承绑定属性,则不会在继承的属性中更改事件时触发任何事件。

        如果侦听器为空,则不会抛出异常,也不会执行任何操作。

        重写:
        addPropertyChangeListenerComponent
        参数
        propertyName - 上面列出的属性名称之一
        listener - 要添加的PropertyChangeListener
        另请参见:
        addPropertyChangeListener(java.beans.PropertyChangeListener)Component.removePropertyChangeListener(java.beans.PropertyChangeListener)