Container (Java 2 Platform SE v1.4.1_"07")

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

JavaTM 2 Platform
Std. Ed. v1.4.1_"07"

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.awt
Class Container

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable

Direct Known Subclasses:
  BasicSplitPaneDivider, CellRendererPane, DefaultTreeCellEditor.EditorContainer, JComponent, Panel, ScrollPane, Window

public class Container
extends Component

A generic Abstract Window Toolkit(AWT) container object is a component that can contain other AWT components.

Components added to a container are tracked in a list. The order of the list will define the components' front-to-back stacking order within the container. If no index is specified when adding a component to a container, it will be added to the end of the list (and hence to the bottom of the stacking order).

Since:
  JDK1.0
See Also:
  `add(java.awt.Component, int)`, `getComponent(int)`, `LayoutManager`, Serialized Form

Nested Class Summary
`protected class` | `Container.AccessibleAWTContainer` Inner class of Container used to provide default support for accessibility.

Nested classes inherited from class java.awt.Component
`Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`Container()` Constructs a new Container.

Method Summary
`Component` | `add(Component comp)` Appends the specified component to the end of this container.
`Component` | `add(Component comp, int index)` Adds the specified component to this container at the given position.
`void` | `add(Component comp, Object constraints)` Adds the specified component to the end of this container.
`void` | `add(Component comp, Object constraints, int index)` Adds the specified component to this container with the specified constraints at the specified index.
`Component` | `add(String name, Component comp)` Adds the specified component to this container.
`void` | `addContainerListener(ContainerListener l)` Adds the specified container listener to receive container events from this container.
`protected void` | `addImpl(Component comp, Object constraints, int index)` Adds the specified component to this container at the specified index.
`void` | `addNotify()` Makes this Container displayable by connecting it to a native screen resource.
`void` | `addPropertyChangeListener(PropertyChangeListener listener)` Adds a PropertyChangeListener to the listener list.
`void` | `addPropertyChangeListener(String propertyName, PropertyChangeListener listener)` Adds a PropertyChangeListener to the listener list for a specific property.
`void` | `applyComponentOrientation(ComponentOrientation o)` Sets the `ComponentOrientation` property of this container and all components contained within it.
`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.
`int` | `countComponents()` Deprecated. As of JDK version 1.1, replaced by getComponentCount().
`void` | `deliverEvent(Event e)` Deprecated. As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`
`void` | `doLayout()` Causes this container to lay out its components.
`Component` | `findComponentAt(int x, int y)` Locates the visible child component that contains the specified position.
`Component` | `findComponentAt(Point p)` Locates the visible child component that contains the specified point.
`float` | `getAlignmentX()` Returns the alignment along the x axis.
`float` | `getAlignmentY()` Returns the alignment along the y axis.
`Component` | `getComponent(int n)` Gets the nth component in this container.
`Component` | `getComponentAt(int x, int y)` Locates the component that contains the x,y position.
`Component` | `getComponentAt(Point p)` Gets the component that contains the specified point.
`int` | `getComponentCount()` Gets the number of components in this panel.
`Component[]` | `getComponents()` Gets all the components in this container.
`ContainerListener[]` | `getContainerListeners()` Returns an array of all the container listeners registered on this container.
`Set` | `getFocusTraversalKeys(int id)` Returns the Set of focus traversal keys for a given traversal operation for this Container.
`FocusTraversalPolicy` | `getFocusTraversalPolicy()` Returns the focus traversal policy that will manage keyboard traversal of this Container's children, or null if this Container is not a focus cycle root.
`Insets` | `getInsets()` Determines the insets of this container, which indicate the size of the container's border.
`LayoutManager` | `getLayout()` Gets the layout manager for this container.
`EventListener[]` | `getListeners(Class listenerType)` Returns an array of all the objects currently registered as `FooListener`s upon this `Container`.
`Dimension` | `getMaximumSize()` Returns the maximum size of this container.
`Dimension` | `getMinimumSize()` Returns the minimum size of this container.
`Dimension` | `getPreferredSize()` Returns the preferred size of this container.
`Insets` | `insets()` Deprecated. As of JDK version 1.1, replaced by `getInsets()`.
`void` | `invalidate()` Invalidates the container.
`boolean` | `isAncestorOf(Component c)` Checks if the component is contained in the component hierarchy of this container.
`boolean` | `isFocusCycleRoot()` Returns whether this Container is the root of a focus traversal cycle.
`boolean` | `isFocusCycleRoot(Container container)` Returns whether the specified Container is the focus cycle root of this Container's focus traversal cycle.
`boolean` | `isFocusTraversalPolicySet()` Returns whether the focus traversal policy has been explicitly set for this Container.
`void` | `layout()` Deprecated. As of JDK version 1.1, replaced by `doLayout()`.
`void` | `list(PrintStream out, int indent)` Prints a listing of this container to the specified output stream.
`void` | `list(PrintWriter out, int indent)` Prints out a list, starting at the specified indention, to the specified print writer.
`Component` | `locate(int x, int y)` Deprecated. As of JDK version 1.1, replaced by `getComponentAt(int, int)`.
`Dimension` | `minimumSize()` Deprecated. As of JDK version 1.1, replaced by `getMinimumSize()`.
`void` | `paint(Graphics g)` Paints the container.
`void` | `paintComponents(Graphics g)` Paints each of the components in this container.
`protected String` | `paramString()` Returns a string representing the state of this `Container`.
`Dimension` | `preferredSize()` Deprecated. As of JDK version 1.1, replaced by `getPreferredSize()`.
`void` | `print(Graphics g)` Prints the container.
`void` | `printComponents(Graphics g)` Prints each of the components in this container.
`protected void` | `processContainerEvent(ContainerEvent e)` Processes container events occurring on this container by dispatching them to any registered ContainerListener objects.
`protected void` | `processEvent(AWTEvent e)` Processes events on this container.
`void` | `remove(Component comp)` Removes the specified component from this container.
`void` | `remove(int index)` Removes the component, specified by `index`, from this container.
`void` | `removeAll()` Removes all the components from this container.
`void` | `removeContainerListener(ContainerListener l)` Removes the specified container listener so it no longer receives container events from this container.
`void` | `removeNotify()` Makes this Container undisplayable by removing its connection to its native screen resource.
`void` | `setFocusCycleRoot(boolean focusCycleRoot)` Sets whether this Container is the root of a focus traversal cycle.
`void` | `setFocusTraversalKeys(int id, Set keystrokes)` Sets the focus traversal keys for a given traversal operation for this Container.
`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.
`void` | `setFont(Font f)` Sets the font of this container.
`void` | `setLayout(LayoutManager mgr)` Sets the layout manager for this container.
`void` | `transferFocusBackward()` Transfers the focus to the previous component, as though this Component were the focus owner.
`void` | `transferFocusDownCycle()` Transfers the focus down one focus traversal cycle.
`void` | `update(Graphics g)` Updates the container.
`void` | `validate()` Validates this container and all of its subcomponents.
`protected void` | `validateTree()` Recursively descends the container tree and recomputes the layout for any subtrees marked as needing it (those marked as invalid).

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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.

  Returns:
    the number of components in this panel.
  Since:
    JDK1.1
  See Also:
    `getComponent(int)`

### countComponents

    public int countComponents()

  Deprecated. As of JDK version 1.1, replaced by getComponentCount().

### getComponent

    public Component getComponent(int n)

  Gets the nth component in this container.

  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.

### getComponents

    public Component[] getComponents()

  Gets all the components in this container.

  Returns:
    an array of all the components in this container.

### 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:
    JDK1.1
  See Also:
    `Insets`, `LayoutManager`

### insets

    public Insets insets()

  Deprecated. As of JDK version 1.1, replaced by `getInsets()`.

### add

    public Component add(Component comp)

  Appends the specified component to the end of this container. This is a convenience method for `addImpl(java.awt.Component, java.lang.Object, int)`.

  Note: If a component has been added to a container that has been displayed, `validate` must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling `validate` only once, after all the components have been added.

  Parameters:
    `comp` - the component to be added
  Returns:
    the component argument
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `validate()`, `#revalidate`

### 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.

  See Also:
    `add(Component, Object)`

### add

    public Component add(Component comp,
                         int index)

  Adds the specified component to this container at the given position. This is a convenience method for `addImpl(java.awt.Component, java.lang.Object, int)`.

  Note: If a component has been added to a container that has been displayed, `validate` must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling `validate` only once, after all the components have been added.

  Parameters:
    `comp` - the component to be added
    `index` - the position at which to insert the component, or `-1` to append the component to the end
  Returns:
    the component `comp`
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `remove(int)`, `validate()`, `#revalidate`

### add

    public void add(Component comp,
                    Object constraints)

  Adds the specified component to the end of this container. Also notifies the layout manager to add the component to this container's layout using the specified constraints object. This is a convenience method for `addImpl(java.awt.Component, java.lang.Object, int)`.

  Note: If a component has been added to a container that has been displayed, `validate` must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling `validate` only once, after all the components have been added.

  Parameters:
    `comp` - the component to be added
    `constraints` - an object expressing layout contraints for this component
  Since:
    JDK1.1
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `validate()`, `#revalidate`, `LayoutManager`

### add

    public void add(Component comp,
                    Object constraints,
                    int index)

  Adds the specified component to this container with the specified constraints at the specified index. Also notifies the layout manager to add the component to the this container's layout using the specified constraints object. This is a convenience method for `addImpl(java.awt.Component, java.lang.Object, int)`.

  Note: If a component has been added to a container that has been displayed, `validate` must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling `validate` only once, after all the components have been added.

  Parameters:
    `comp` - the component to be added
    `constraints` - an object expressing layout contraints for this
    `index` - the position in the container's list at which to insert the component; `-1` means insert at the end component
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `validate()`, `#revalidate`, `remove(int)`, `LayoutManager`

### 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`.

  Note that if the component already exists in this container or a child of this container, it is removed from that container before being 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)`

  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
    `IllegalArgumentException` - if adding the container's parent to itself
    `IllegalArgumentException` - if adding a window to a container
  Since:
    JDK1.1
  See Also:
    `add(Component)`, `add(Component, int)`, `add(Component, java.lang.Object)`, `LayoutManager`, `LayoutManager2`

### remove

    public void remove(int index)

  Removes the component, specified by `index`, from this container.

  Parameters:
    `index` - the index of the component to be removed.
  Since:
    JDK1.1
  See Also:
    `add(java.awt.Component)`

### remove

    public void remove(Component comp)

  Removes the specified component from this container.

  Parameters:
    `comp` - the component to be removed
  See Also:
    `add(java.awt.Component)`

### removeAll

    public void removeAll()

  Removes all the components from this container.

  See Also:
    `add(java.awt.Component)`, `remove(int)`

### getLayout

    public LayoutManager getLayout()

  Gets the layout manager for this container.

  See Also:
    `doLayout()`, `setLayout(java.awt.LayoutManager)`

### setLayout

    public void setLayout(LayoutManager mgr)

  Sets the layout manager for this container.

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

### doLayout

    public void doLayout()

  Causes this container to lay out its components. Most programs should not call this method directly, but should invoke the `validate` method instead.

  Overrides:
    `doLayout` in class `Component`
  Since:
    JDK1.1
  See Also:
    `LayoutManager.layoutContainer(java.awt.Container)`, `setLayout(java.awt.LayoutManager)`, `validate()`

### layout

    public void layout()

  Deprecated. As of JDK version 1.1, replaced by `doLayout()`.

  Overrides:
    `layout` in class `Component`

### invalidate

    public void invalidate()

  Invalidates the container. The container and all parents above it are marked as needing to be laid out. This method can be called often, so it needs to execute quickly.

  Overrides:
    `invalidate` in class `Component`
  See Also:
    `validate()`, `layout()`, `LayoutManager`

### validate

    public void validate()

  Validates this container and all of its subcomponents.

  The `validate` method is used to cause a container to lay out its subcomponents again. It should be invoked when this container's subcomponents are modified (added to or removed from the container, or layout-related information changed) after the container has been displayed.

  Overrides:
    `validate` in class `Component`
  See Also:
    `add(java.awt.Component)`, `Component.invalidate()`, `#revalidate`

### 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`.

### setFont

    public void setFont(Font f)

  Sets the font of this container.

  Overrides:
    `setFont` in class `Component`
  Parameters:
    `f` - The font to become this container's font.
  Since:
    JDK1.0
  See Also:
    `Component.getFont()`

### getPreferredSize

    public Dimension getPreferredSize()

  Returns the preferred size of this container.

  Overrides:
    `getPreferredSize` in class `Component`
  Returns:
    an instance of `Dimension` that represents the preferred size of this container.
  See Also:
    `getMinimumSize()`, `getLayout()`, `LayoutManager.preferredLayoutSize(Container)`, `Component.getPreferredSize()`

### preferredSize

    public Dimension preferredSize()

  Deprecated. As of JDK version 1.1, replaced by `getPreferredSize()`.

  Overrides:
    `preferredSize` in class `Component`

### getMinimumSize

    public Dimension getMinimumSize()

  Returns the minimum size of this container.

  Overrides:
    `getMinimumSize` in class `Component`
  Returns:
    an instance of `Dimension` that represents the minimum size of this container.
  Since:
    JDK1.1
  See Also:
    `getPreferredSize()`, `getLayout()`, `LayoutManager.minimumLayoutSize(Container)`, `Component.getMinimumSize()`

### minimumSize

    public Dimension minimumSize()

  Deprecated. As of JDK version 1.1, replaced by `getMinimumSize()`.

  Overrides:
    `minimumSize` in class `Component`

### getMaximumSize

    public Dimension getMaximumSize()

  Returns the maximum size of this container.

  Overrides:
    `getMaximumSize` in class `Component`
  Returns:
    a dimension object indicating this component's maximum size
  See Also:
    `getPreferredSize()`

### 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`

### 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`

### 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)`

### paintComponents

    public void paintComponents(Graphics g)

  Paints each of the components in this container.

  Parameters:
    `g` - the graphics context.
  See Also:
    `Component.paint(java.awt.Graphics)`, `Component.paintAll(java.awt.Graphics)`

### printComponents

    public void printComponents(Graphics g)

  Prints each of the components in this container.

  Parameters:
    `g` - the graphics context.
  See Also:
    `Component.print(java.awt.Graphics)`, `Component.printAll(java.awt.Graphics)`

### addContainerListener

    public void addContainerListener(ContainerListener l)

  Adds the specified container listener to receive container events from this container. If l is null, no exception is thrown and no action is performed.

  Parameters:
    `l` - the container listener
  See Also:
    `removeContainerListener(java.awt.event.ContainerListener)`, `getContainerListeners()`

### removeContainerListener

    public void removeContainerListener(ContainerListener l)

  Removes the specified container listener so it no longer receives container events from this container. If l is null, no exception is thrown and no action is performed.

  Parameters:
    `l` - the container listener
  See Also:
    `addContainerListener(java.awt.event.ContainerListener)`, `getContainerListeners()`

### getContainerListeners

    public ContainerListener[] getContainerListeners()

  Returns an array of all the container listeners registered on this container.

  Returns:
    all of this container's `ContainerListener`s or an empty array if no container listeners are currently registered
  Since:
    1.4
  See Also:
    `addContainerListener(java.awt.event.ContainerListener)`, `removeContainerListener(java.awt.event.ContainerListener)`

### getListeners

    public EventListener[] getListeners(Class listenerType)

  Returns an array of all the objects currently registered as `FooListener`s upon this `Container`. `FooListener`s 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`
  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 `FooListener`s 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`
  Since:
    1.3
  See Also:
    `getContainerListeners()`

### processEvent

    protected void processEvent(AWTEvent e)

  Processes events on this container. If the event is a `ContainerEvent`, it invokes the `processContainerEvent` method, else it invokes its superclass's `processEvent`.

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

  Overrides:
    `processEvent` in class `Component`
  Parameters:
    `e` - the event
  See Also:
    `Component.processComponentEvent(java.awt.event.ComponentEvent)`, `Component.processFocusEvent(java.awt.event.FocusEvent)`, `Component.processKeyEvent(java.awt.event.KeyEvent)`, `Component.processMouseEvent(java.awt.event.MouseEvent)`, `Component.processMouseMotionEvent(java.awt.event.MouseEvent)`, `Component.processInputMethodEvent(java.awt.event.InputMethodEvent)`, `Component.processHierarchyEvent(java.awt.event.HierarchyEvent)`, `Component.processMouseWheelEvent(java.awt.event.MouseWheelEvent)`

### 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

    public void deliverEvent(Event e)

  Deprecated. As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`

  Overrides:
    `deliverEvent` in class `Component`

### 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:
    JDK1.1
  See Also:
    `Component.contains(int, int)`

### locate

    public Component locate(int x,
                            int y)

  Deprecated. As of JDK version 1.1, replaced by `getComponentAt(int, int)`.

  Overrides:
    `locate` in class `Component`

### 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:
    JDK1.1
  See Also:
    `Component.contains(int, int)`

### 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.
  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:
    JDK1.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.

  Overrides:
    `list` in class `Component`
  Parameters:
    `out` - a print stream.
    `indent` - the number of spaces to indent.
  Since:
    JDK1.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 indention, to the specified print writer.

  Overrides:
    `list` in class `Component`
  Parameters:
    `out` - the print writer to print to
    `indent` - the number of spaces to indent
  See Also:
    `PrintStream.println(java.lang.Object)`

### setFocusTraversalKeys

    public void setFocusTraversalKeys(int id,
                                      Set 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.

  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.

  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 Object in keystrokes is not an AWTKeyStroke, 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`

### getFocusTraversalKeys

    public Set getFocusTraversalKeys(int id)

  Returns the Set of focus traversal keys for a given traversal operation for this Container. (See `setFocusTraversalKeys` for a full description of each key.)

  If a Set of traversal keys has not been explicitly defined for this Container, then this Container's parent's Set is returned. If no Set has been explicitly defined for any of this Container's ancestors, then the current KeyboardFocusManager's default Set is returned.

  Overrides:
    `getFocusTraversalKeys` 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:
    the Set of AWTKeyStrokes for the specified operation. The Set will be unmodifiable, and may be empty. null will never be returned.
  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
  See Also:
    `setFocusTraversalKeys(int, java.util.Set)`, `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 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()`

### transferFocusBackward

    public void transferFocusBackward()

  Description copied from class: `Component`
  Transfers the focus to the previous component, as though this Component were the focus owner.

  Overrides:
    `transferFocusBackward` in class `Component`
  See Also:
    `Component.requestFocus()`

### 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)`

### getFocusTraversalPolicy

    public FocusTraversalPolicy getFocusTraversalPolicy()

  Returns the focus traversal policy that will manage keyboard traversal of this Container's children, or null if this Container is not a focus cycle root. If no traversal policy has been explicitly set for this Container, then this Container's focus-cycle-root ancestor's policy is returned.

  Returns:
    this Container's focus traversal policy, or null if this Container is not a focus cycle root.
  Since:
    1.4
  See Also:
    `setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)`, `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.

  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`

### 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)`

### applyComponentOrientation

    public void applyComponentOrientation(ComponentOrientation o)

  Sets the `ComponentOrientation` property of this container and all components contained within it.

  Overrides:
    `applyComponentOrientation` in class `Component`
  Parameters:
    `o` - the new component orientation of this component and the components contained within it.
  Throws:
    `NullPointerException` - if `orientation` is null.
  Since:
    1.4
  See Also:
    `Component.setComponentOrientation(java.awt.ComponentOrientation)`, `Component.getComponentOrientation()`

### 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")
  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)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

JavaTM 2 Platform
Std. Ed. v1.4.1_"07"

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.