Module java.desktop
Package java.awt

Class Container

    • Constructor Detail

      • Container

        public Container​()
        Constructs a new Container. Containers can be extended directly, but are lightweight in this case and must be contained by a parent somewhere higher up in the component tree that is native. (such as Frame for example).
    • Method Detail

      • getComponentCount

        public int getComponentCount​()
        Gets the number of components in this panel.

        Note: This method should be called under AWT tree lock.

        Returns:
        the number of components in this panel.
        Since:
        1.1
        See Also:
        getComponent(int), Component.getTreeLock()
      • countComponents

        @Deprecated
        public int countComponents​()
        Deprecated. As of JDK version 1.1, replaced by getComponentCount().
        Returns the number of components in this container.
        Returns:
        the number of components in this container
      • getComponent

        public Component getComponent​(int n)
        Gets the nth component in this container.

        Note: This method should be called under AWT tree lock.

        Parameters:
        n - the index of the component to get.
        Returns:
        the nth component in this container.
        Throws:
        ArrayIndexOutOfBoundsException - if the nth value does not exist.
        See Also:
        Component.getTreeLock()
      • getComponents

        public Component[] getComponents​()
        Gets all the components in this container.

        Note: This method should be called under AWT tree lock.

        Returns:
        an array of all the components in this container.
        See Also:
        Component.getTreeLock()
      • getInsets

        public Insets getInsets​()
        Determines the insets of this container, which indicate the size of the container's border.

        A Frame object, for example, has a top inset that corresponds to the height of the frame's title bar.

        Returns:
        the insets of this container.
        Since:
        1.1
        See Also:
        Insets, LayoutManager
      • insets

        @Deprecated
        public Insets insets​()
        Deprecated. As of JDK version 1.1, replaced by getInsets().
        Returns the insets for this container.
        Returns:
        the insets for this container
      • add

        public Component add​(String name,
                             Component comp)
        Adds the specified component to this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).

        This method is obsolete as of 1.1. Please use the method add(Component, Object) instead.

        This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.

        Parameters:
        name - the name of the component to be added
        comp - the component to be added
        Returns:
        the component added
        Throws:
        NullPointerException - if comp is null
        See Also:
        add(Component, Object), invalidate()
      • setComponentZOrder

        public void setComponentZOrder​(Component comp,
                                       int index)
        Moves the specified component to the specified z-order index in the container. The z-order determines the order that components are painted; the component with the highest z-order paints first and the component with the lowest z-order paints last. Where components overlap, the component with the lower z-order paints over the component with the higher z-order.

        If the component is a child of some other container, it is removed from that container before being added to this container. The important difference between this method and java.awt.Container.add(Component, int) is that this method doesn't call removeNotify on the component while removing it from its previous container unless necessary and when allowed by the underlying native windowing system. This way, if the component has the keyboard focus, it maintains the focus when moved to the new position.

        This property is guaranteed to apply only to lightweight non-Container components.

        This method changes layout-related information, and therefore, invalidates the component hierarchy.

        Note: Not all platforms support changing the z-order of heavyweight components from one container into another without the call to removeNotify. There is no way to detect whether a platform supports this, so developers shouldn't make any assumptions.

        Parameters:
        comp - the component to be moved
        index - the position in the container's list to insert the component, where getComponentCount() appends to the end
        Throws:
        NullPointerException - if comp is null
        IllegalArgumentException - if comp is one of the container's parents
        IllegalArgumentException - if index is not in the range [0, getComponentCount()] for moving between containers, or not in the range [0, getComponentCount()-1] for moving inside a container
        IllegalArgumentException - if adding a container to itself
        IllegalArgumentException - if adding a Window to a container
        Since:
        1.5
        See Also:
        getComponentZOrder(java.awt.Component), invalidate()
      • getComponentZOrder

        public int getComponentZOrder​(Component comp)
        Returns the z-order index of the component inside the container. The higher a component is in the z-order hierarchy, the lower its index. The component with the lowest z-order index is painted last, above all other child components.
        Parameters:
        comp - the component being queried
        Returns:
        the z-order index of the component; otherwise returns -1 if the component is null or doesn't belong to the container
        Since:
        1.5
        See Also:
        setComponentZOrder(java.awt.Component, int)
      • addImpl

        protected void addImpl​(Component comp,
                               Object constraints,
                               int index)
        Adds the specified component to this container at the specified index. This method also notifies the layout manager to add the component to this container's layout using the specified constraints object via the addLayoutComponent method.

        The constraints are defined by the particular layout manager being used. For example, the BorderLayout class defines five constraints: BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST, and BorderLayout.CENTER.

        The GridBagLayout class requires a GridBagConstraints object. Failure to pass the correct type of constraints object results in an IllegalArgumentException.

        If the current layout manager implements LayoutManager2, then LayoutManager2.addLayoutComponent(Component,Object) is invoked on it. If the current layout manager does not implement LayoutManager2, and constraints is a String, then LayoutManager.addLayoutComponent(String,Component) is invoked on it.

        If the component is not an ancestor of this container and has a non-null parent, it is removed from its current parent before it is added to this container.

        This is the method to override if a program needs to track every add request to a container as all other add methods defer to this one. An overriding method should usually include a call to the superclass's version of the method:

        super.addImpl(comp, constraints, index)

        This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.

        Parameters:
        comp - the component to be added
        constraints - an object expressing layout constraints for this component
        index - the position in the container's list at which to insert the component, where -1 means append to the end
        Throws:
        IllegalArgumentException - if index is invalid; if comp is a child of this container, the valid range is [-1, getComponentCount()-1]; if component is not a child of this container, the valid range is [-1, getComponentCount()]
        IllegalArgumentException - if comp is an ancestor of this container
        IllegalArgumentException - if adding a window to a container
        NullPointerException - if comp is null
        Since:
        1.1
        See Also:
        add(Component), add(Component, int), add(Component, java.lang.Object), invalidate(), LayoutManager, LayoutManager2
      • remove

        public void remove​(int index)
        Removes the component, specified by index, from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method.

        This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to reflect the changes.

        Parameters:
        index - the index of the component to be removed
        Throws:
        ArrayIndexOutOfBoundsException - if index is not in range [0, getComponentCount()-1]
        Since:
        1.1
        See Also:
        add(java.awt.Component), invalidate(), validate(), getComponentCount()
      • remove

        public void remove​(Component comp)
        Removes the specified component from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method.

        This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to reflect the changes.

        Parameters:
        comp - the component to be removed
        Throws:
        NullPointerException - if comp is null
        See Also:
        add(java.awt.Component), invalidate(), validate(), remove(int)
      • removeAll

        public void removeAll​()
        Removes all the components from this container. This method also notifies the layout manager to remove the components from this container's layout via the removeLayoutComponent method.

        This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to reflect the changes.

        See Also:
        add(java.awt.Component), remove(int), invalidate()
      • setLayout

        public void setLayout​(LayoutManager mgr)
        Sets the layout manager for this container.

        This method changes layout-related information, and therefore, invalidates the component hierarchy.

        Parameters:
        mgr - the specified layout manager
        See Also:
        doLayout(), getLayout(), invalidate()
      • layout

        @Deprecated
        public void layout​()
        Deprecated. As of JDK version 1.1, replaced by doLayout().
        Overrides:
        layout in class Component
      • isValidateRoot

        public boolean isValidateRoot​()
        Indicates if this container is a validate root.

        Layout-related changes, such as bounds of the validate root descendants, do not affect the layout of the validate root parent. This peculiarity enables the invalidate() method to stop invalidating the component hierarchy when the method encounters a validate root. However, to preserve backward compatibility this new optimized behavior is enabled only when the java.awt.smartInvalidate system property value is set to true.

        If a component hierarchy contains validate roots and the new optimized invalidate() behavior is enabled, the validate() method must be invoked on the validate root of a previously invalidated component to restore the validity of the hierarchy later. Otherwise, calling the validate() method on the top-level container (such as a Frame object) should be used to restore the validity of the component hierarchy.

        The Window class and the Applet class are the validate roots in AWT. Swing introduces more validate roots.

        Returns:
        whether this container is a validate root
        Since:
        1.7
        See Also:
        invalidate(), Component.invalidate(), JComponent.isValidateRoot(), JComponent.revalidate()
      • validate

        public void validate​()
        Validates this container and all of its subcomponents.

        Validating a container means laying out its subcomponents. Layout-related changes, such as setting the bounds of a component, or adding a component to the container, invalidate the container automatically. Note that the ancestors of the container may be invalidated also (see Component.invalidate() for details.) Therefore, to restore the validity of the hierarchy, the validate() method should be invoked on the top-most invalid container of the hierarchy.

        Validating the container may be a quite time-consuming operation. For performance reasons a developer may postpone the validation of the hierarchy till a set of layout-related operations completes, e.g. after adding all the children to the container.

        If this Container is not valid, this method invokes the validateTree method and marks this Container as valid. Otherwise, no action is performed.

        Overrides:
        validate in class Component
        See Also:
        add(java.awt.Component), invalidate(), isValidateRoot(), JComponent.revalidate(), validateTree()
      • validateTree

        protected void validateTree​()
        Recursively descends the container tree and recomputes the layout for any subtrees marked as needing it (those marked as invalid). Synchronization should be provided by the method that calls this one: validate.
        See Also:
        doLayout(), validate()
      • setFont

        public void setFont​(Font f)
        Sets the font of this container.

        This method changes layout-related information, and therefore, invalidates the component hierarchy.

        Overrides:
        setFont in class Component
        Parameters:
        f - The font to become this container's font.
        Since:
        1.0
        See Also:
        Component.getFont(), invalidate()
      • preferredSize

        @Deprecated
        public Dimension preferredSize​()
        Deprecated. As of JDK version 1.1, replaced by getPreferredSize().
        Description copied from class: Component
        Returns the component's preferred size.
        Overrides:
        preferredSize in class Component
        Returns:
        the component's preferred size
      • minimumSize

        @Deprecated
        public Dimension minimumSize​()
        Deprecated. As of JDK version 1.1, replaced by getMinimumSize().
        Description copied from class: Component
        Returns the minimum size of this component.
        Overrides:
        minimumSize in class Component
        Returns:
        the minimum size of this component
      • getAlignmentX

        public float getAlignmentX​()
        Returns the alignment along the x axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.
        Overrides:
        getAlignmentX in class Component
        Returns:
        the horizontal alignment of this component
      • getAlignmentY

        public float getAlignmentY​()
        Returns the alignment along the y axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.
        Overrides:
        getAlignmentY in class Component
        Returns:
        the vertical alignment of this component
      • paint

        public void paint​(Graphics g)
        Paints the container. This forwards the paint to any lightweight components that are children of this container. If this method is reimplemented, super.paint(g) should be called so that lightweight components are properly rendered. If a child component is entirely clipped by the current clipping setting in g, paint() will not be forwarded to that child.
        Overrides:
        paint in class Component
        Parameters:
        g - the specified Graphics window
        See Also:
        Component.update(Graphics)
      • update

        public void update​(Graphics g)
        Updates the container. This forwards the update to any lightweight components that are children of this container. If this method is reimplemented, super.update(g) should be called so that lightweight components are properly rendered. If a child component is entirely clipped by the current clipping setting in g, update() will not be forwarded to that child.
        Overrides:
        update in class Component
        Parameters:
        g - the specified Graphics window
        See Also:
        Component.update(Graphics)
      • print

        public void print​(Graphics g)
        Prints the container. This forwards the print to any lightweight components that are children of this container. If this method is reimplemented, super.print(g) should be called so that lightweight components are properly rendered. If a child component is entirely clipped by the current clipping setting in g, print() will not be forwarded to that child.
        Overrides:
        print in class Component
        Parameters:
        g - the specified Graphics window
        See Also:
        Component.update(Graphics)
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        Returns an array of all the objects currently registered as FooListeners upon this Container. FooListeners are registered using the addFooListener method.

        You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a Container c for its container listeners with the following code:

        ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));
        If no such listeners exist, this method returns an empty array.
        Overrides:
        getListeners in class Component
        Type Parameters:
        T - the type of the listeners
        Parameters:
        listenerType - the type of listeners requested; this parameter should specify an interface that descends from java.util.EventListener
        Returns:
        an array of all objects registered as FooListeners on this container, or an empty array if no such listeners have been added
        Throws:
        ClassCastException - if listenerType doesn't specify a class or interface that implements java.util.EventListener
        NullPointerException - if listenerType is null
        Since:
        1.3
        See Also:
        getContainerListeners()
      • processContainerEvent

        protected void processContainerEvent​(ContainerEvent e)
        Processes container events occurring on this container by dispatching them to any registered ContainerListener objects. NOTE: This method will not be called unless container events are enabled for this component; this happens when one of the following occurs:
        • A ContainerListener object is registered via addContainerListener
        • Container events are enabled via enableEvents

        Note that if the event parameter is null the behavior is unspecified and may result in an exception.

        Parameters:
        e - the container event
        See Also:
        Component.enableEvents(long)
      • deliverEvent

        @Deprecated
        public void deliverEvent​(Event e)
        Deprecated. As of JDK version 1.1, replaced by dispatchEvent(AWTEvent e)
        Overrides:
        deliverEvent in class Component
        Parameters:
        e - the event to deliver
      • getComponentAt

        public Component getComponentAt​(int x,
                                        int y)
        Locates the component that contains the x,y position. The top-most child component is returned in the case where there is overlap in the components. This is determined by finding the component closest to the index 0 that claims to contain the given point via Component.contains(), except that Components which have native peers take precedence over those which do not (i.e., lightweight Components).
        Overrides:
        getComponentAt in class Component
        Parameters:
        x - the x coordinate
        y - the y coordinate
        Returns:
        null if the component does not contain the position. If there is no child component at the requested point and the point is within the bounds of the container the container itself is returned; otherwise the top-most child is returned.
        Since:
        1.1
        See Also:
        Component.contains(int, int)
      • locate

        @Deprecated
        public Component locate​(int x,
                                int y)
        Deprecated. As of JDK version 1.1, replaced by getComponentAt(int, int).
        Description copied from class: Component
        Returns the component occupying the position specified (this component, or immediate child component, or null if neither of the first two occupies the location).
        Overrides:
        locate in class Component
        Parameters:
        x - the x coordinate to search for components at
        y - the y coordinate to search for components at
        Returns:
        the component at the specified location or null
      • getComponentAt

        public Component getComponentAt​(Point p)
        Gets the component that contains the specified point.
        Overrides:
        getComponentAt in class Component
        Parameters:
        p - the point.
        Returns:
        returns the component that contains the point, or null if the component does not contain the point.
        Since:
        1.1
        See Also:
        Component.contains(int, int)
      • getMousePosition

        public Point getMousePosition​(boolean allowChildren)
                               throws HeadlessException
        Returns the position of the mouse pointer in this Container's coordinate space if the Container is under the mouse pointer, otherwise returns null. This method is similar to Component.getMousePosition() with the exception that it can take the Container's children into account. If allowChildren is false, this method will return a non-null value only if the mouse pointer is above the Container directly, not above the part obscured by children. If allowChildren is true, this method returns a non-null value if the mouse pointer is above Container or any of its descendants.
        Parameters:
        allowChildren - true if children should be taken into account
        Returns:
        mouse coordinates relative to this Component, or null
        Throws:
        HeadlessException - if GraphicsEnvironment.isHeadless() returns true
        Since:
        1.5
        See Also:
        Component.getMousePosition()
      • findComponentAt

        public Component findComponentAt​(int x,
                                         int y)
        Locates the visible child component that contains the specified position. The top-most child component is returned in the case where there is overlap in the components. If the containing child component is a Container, this method will continue searching for the deepest nested child component. Components which are not visible are ignored during the search.

        The findComponentAt method is different from getComponentAt in that getComponentAt only searches the Container's immediate children; if the containing component is a Container, findComponentAt will search that child to find a nested component.

        Parameters:
        x - the x coordinate
        y - the y coordinate
        Returns:
        null if the component does not contain the position. If there is no child component at the requested point and the point is within the bounds of the container the container itself is returned.
        Since:
        1.2
        See Also:
        Component.contains(int, int), getComponentAt(int, int)
      • findComponentAt

        public Component findComponentAt​(Point p)
        Locates the visible child component that contains the specified point. The top-most child component is returned in the case where there is overlap in the components. If the containing child component is a Container, this method will continue searching for the deepest nested child component. Components which are not visible are ignored during the search.

        The findComponentAt method is different from getComponentAt in that getComponentAt only searches the Container's immediate children; if the containing component is a Container, findComponentAt will search that child to find a nested component.

        Parameters:
        p - the point.
        Returns:
        null if the component does not contain the position. If there is no child component at the requested point and the point is within the bounds of the container the container itself is returned.
        Throws:
        NullPointerException - if p is null
        Since:
        1.2
        See Also:
        Component.contains(int, int), getComponentAt(int, int)
      • addNotify

        public void addNotify​()
        Makes this Container displayable by connecting it to a native screen resource. Making a container displayable will cause all of its children to be made displayable. This method is called internally by the toolkit and should not be called directly by programs.
        Overrides:
        addNotify in class Component
        See Also:
        Component.isDisplayable(), removeNotify()
      • removeNotify

        public void removeNotify​()
        Makes this Container undisplayable by removing its connection to its native screen resource. Making a container undisplayable will cause all of its children to be made undisplayable. This method is called by the toolkit internally and should not be called directly by programs.
        Overrides:
        removeNotify in class Component
        See Also:
        Component.isDisplayable(), addNotify()
      • isAncestorOf

        public boolean isAncestorOf​(Component c)
        Checks if the component is contained in the component hierarchy of this container.
        Parameters:
        c - the component
        Returns:
        true if it is an ancestor; false otherwise.
        Since:
        1.1
      • paramString

        protected String paramString​()
        Returns a string representing the state of this Container. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null.
        Overrides:
        paramString in class Component
        Returns:
        the parameter string of this container
      • list

        public void list​(PrintStream out,
                         int indent)
        Prints a listing of this container to the specified output stream. The listing starts at the specified indentation.

        The immediate children of the container are printed with an indentation of indent+1. The children of those children are printed at indent+2 and so on.

        Overrides:
        list in class Component
        Parameters:
        out - a print stream
        indent - the number of spaces to indent
        Throws:
        NullPointerException - if out is null
        Since:
        1.0
        See Also:
        Component.list(java.io.PrintStream, int)
      • list

        public void list​(PrintWriter out,
                         int indent)
        Prints out a list, starting at the specified indentation, to the specified print writer.

        The immediate children of the container are printed with an indentation of indent+1. The children of those children are printed at indent+2 and so on.

        Overrides:
        list in class Component
        Parameters:
        out - a print writer
        indent - the number of spaces to indent
        Throws:
        NullPointerException - if out is null
        Since:
        1.1
        See Also:
        Component.list(java.io.PrintWriter, int)
      • setFocusTraversalKeys

        public void setFocusTraversalKeys​(int id,
                                          Set<? extends AWTKeyStroke> keystrokes)
        Sets the focus traversal keys for a given traversal operation for this Container.

        The default values for a Container's focus traversal keys are implementation-dependent. Sun recommends that all implementations for a particular native platform use the same default values. The recommendations for Windows and Unix are listed below. These recommendations are used in the Sun AWT implementations.

        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
        To disable a traversal key, use an empty Set; Collections.EMPTY_SET is recommended.

        Using the AWTKeyStroke API, client code can specify on which of two specific KeyEvents, KEY_PRESSED or KEY_RELEASED, the focus traversal operation will occur. Regardless of which KeyEvent is specified, however, all KeyEvents related to the focus traversal key, including the associated KEY_TYPED event, will be consumed, and will not be dispatched to any Container. It is a runtime error to specify a KEY_TYPED event as mapping to a focus traversal operation, or to map the same event to multiple default focus traversal operations.

        If a value of null is specified for the Set, this Container inherits the Set from its parent. If all ancestors of this Container have null specified for the Set, then the current KeyboardFocusManager's default Set is used.

        This method may throw a ClassCastException if any Object in keystrokes is not an AWTKeyStroke.

        Overrides:
        setFocusTraversalKeys in class Component
        Parameters:
        id - one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
        keystrokes - the Set of AWTKeyStroke for the specified operation
        Throws:
        IllegalArgumentException - if id is not one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS, or if keystrokes contains null, or if any keystroke represents a KEY_TYPED event, or if any keystroke already maps to another focus traversal operation for this Container
        Since:
        1.4
        See Also:
        getFocusTraversalKeys(int), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
      • areFocusTraversalKeysSet

        public boolean areFocusTraversalKeysSet​(int id)
        Returns whether the Set of focus traversal keys for the given focus traversal operation has been explicitly defined for this Container. If this method returns false, this Container is inheriting the Set from an ancestor, or from the current KeyboardFocusManager.
        Overrides:
        areFocusTraversalKeysSet in class Component
        Parameters:
        id - one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
        Returns:
        true if the Set of focus traversal keys for the given focus traversal operation has been explicitly defined for this Component; false otherwise.
        Throws:
        IllegalArgumentException - if id is not one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
        Since:
        1.4
      • isFocusCycleRoot

        public boolean isFocusCycleRoot​(Container container)
        Returns whether the specified Container is the focus cycle root of this Container's focus traversal cycle. Each focus traversal cycle has only a single focus cycle root and each Container which is not a focus cycle root belongs to only a single focus traversal cycle. Containers which are focus cycle roots belong to two cycles: one rooted at the Container itself, and one rooted at the Container's nearest focus-cycle-root ancestor. This method will return true for both such Containers in this case.
        Overrides:
        isFocusCycleRoot in class Component
        Parameters:
        container - the Container to be tested
        Returns:
        true if the specified Container is a focus-cycle- root of this Container; false otherwise
        Since:
        1.4
        See Also:
        isFocusCycleRoot()
      • setFocusTraversalPolicy

        public void setFocusTraversalPolicy​(FocusTraversalPolicy policy)
        Sets the focus traversal policy that will manage keyboard traversal of this Container's children, if this Container is a focus cycle root. If the argument is null, this Container inherits its policy from its focus- cycle-root ancestor. If the argument is non-null, this policy will be inherited by all focus-cycle-root children that have no keyboard- traversal policy of their own (as will, recursively, their focus-cycle- root children).

        If this Container is not a focus cycle root, the policy will be remembered, but will not be used or inherited by this or any other Containers until this Container is made a focus cycle root.

        Parameters:
        policy - the new focus traversal policy for this Container
        Since:
        1.4
        See Also:
        getFocusTraversalPolicy(), setFocusCycleRoot(boolean), isFocusCycleRoot(java.awt.Container)
      • isFocusTraversalPolicySet

        public boolean isFocusTraversalPolicySet​()
        Returns whether the focus traversal policy has been explicitly set for this Container. If this method returns false, this Container will inherit its focus traversal policy from an ancestor.
        Returns:
        true if the focus traversal policy has been explicitly set for this Container; false otherwise.
        Since:
        1.4
      • setFocusCycleRoot

        public void setFocusCycleRoot​(boolean focusCycleRoot)
        Sets whether this Container is the root of a focus traversal cycle. Once focus enters a traversal cycle, typically it cannot leave it via focus traversal unless one of the up- or down-cycle keys is pressed. Normal traversal is limited to this Container, and all of this Container's descendants that are not descendants of inferior focus cycle roots. Note that a FocusTraversalPolicy may bend these restrictions, however. For example, ContainerOrderFocusTraversalPolicy supports implicit down-cycle traversal.

        The alternative way to specify the traversal order of this Container's children is to make this Container a focus traversal policy provider.

        Parameters:
        focusCycleRoot - indicates whether this Container is the root of a focus traversal cycle
        Since:
        1.4
        See Also:
        isFocusCycleRoot(), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy, setFocusTraversalPolicyProvider(boolean)
      • isFocusCycleRoot

        public boolean isFocusCycleRoot​()
        Returns whether this Container is the root of a focus traversal cycle. Once focus enters a traversal cycle, typically it cannot leave it via focus traversal unless one of the up- or down-cycle keys is pressed. Normal traversal is limited to this Container, and all of this Container's descendants that are not descendants of inferior focus cycle roots. Note that a FocusTraversalPolicy may bend these restrictions, however. For example, ContainerOrderFocusTraversalPolicy supports implicit down-cycle traversal.
        Returns:
        whether this Container is the root of a focus traversal cycle
        Since:
        1.4
        See Also:
        setFocusCycleRoot(boolean), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy
      • transferFocusDownCycle

        public void transferFocusDownCycle​()
        Transfers the focus down one focus traversal cycle. If this Container is a focus cycle root, then the focus owner is set to this Container's default Component to focus, and the current focus cycle root is set to this Container. If this Container is not a focus cycle root, then no focus traversal operation occurs.
        Since:
        1.4
        See Also:
        Component.requestFocus(), isFocusCycleRoot(java.awt.Container), setFocusCycleRoot(boolean)
      • addPropertyChangeListener

        public void addPropertyChangeListener​(PropertyChangeListener listener)
        Adds a PropertyChangeListener to the listener list. The listener is registered for all bound properties of this class, including the following:
        • this Container's font ("font")
        • this Container's background color ("background")
        • this Container's foreground color ("foreground")
        • this Container's focusability ("focusable")
        • this Container's focus traversal keys enabled state ("focusTraversalKeysEnabled")
        • this Container's Set of FORWARD_TRAVERSAL_KEYS ("forwardFocusTraversalKeys")
        • this Container's Set of BACKWARD_TRAVERSAL_KEYS ("backwardFocusTraversalKeys")
        • this Container's Set of UP_CYCLE_TRAVERSAL_KEYS ("upCycleFocusTraversalKeys")
        • this Container's Set of DOWN_CYCLE_TRAVERSAL_KEYS ("downCycleFocusTraversalKeys")
        • this Container's focus traversal policy ("focusTraversalPolicy")
        • this Container's focus-cycle-root state ("focusCycleRoot")
        Note that if this Container is inheriting a bound property, then no event will be fired in response to a change in the inherited property.

        If listener is null, no exception is thrown and no action is performed.

        Overrides:
        addPropertyChangeListener in class Component
        Parameters:
        listener - the PropertyChangeListener to be added
        See Also:
        Component.removePropertyChangeListener(java.beans.PropertyChangeListener), addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
      • addPropertyChangeListener

        public void addPropertyChangeListener​(String propertyName,
                                              PropertyChangeListener listener)
        Adds a PropertyChangeListener to the listener list for a specific property. The specified property may be user-defined, or one of the following defaults:
        • this Container's font ("font")
        • this Container's background color ("background")
        • this Container's foreground color ("foreground")
        • this Container's focusability ("focusable")
        • this Container's focus traversal keys enabled state ("focusTraversalKeysEnabled")
        • this Container's Set of FORWARD_TRAVERSAL_KEYS ("forwardFocusTraversalKeys")
        • this Container's Set of BACKWARD_TRAVERSAL_KEYS ("backwardFocusTraversalKeys")
        • this Container's Set of UP_CYCLE_TRAVERSAL_KEYS ("upCycleFocusTraversalKeys")
        • this Container's Set of DOWN_CYCLE_TRAVERSAL_KEYS ("downCycleFocusTraversalKeys")
        • this Container's focus traversal policy ("focusTraversalPolicy")
        • this Container's focus-cycle-root state ("focusCycleRoot")
        • this Container's focus-traversal-policy-provider state("focusTraversalPolicyProvider")
        • this Container's focus-traversal-policy-provider state("focusTraversalPolicyProvider")
        Note that if this Container is inheriting a bound property, then no event will be fired in response to a change in the inherited property.

        If listener is null, no exception is thrown and no action is performed.

        Overrides:
        addPropertyChangeListener in class Component
        Parameters:
        propertyName - one of the property names listed above
        listener - the PropertyChangeListener to be added
        See Also:
        addPropertyChangeListener(java.beans.PropertyChangeListener), Component.removePropertyChangeListener(java.beans.PropertyChangeListener)