java.awt

Class Container

public class Container extends Component

A generic window toolkit object that acts as a container for other objects. Components are tracked in a list, and new elements are at the end of the list or bottom of the stacking order.

Since: 1.0

UNKNOWN: still missing 1.4 support, some generics from 1.5

Nested Class Summary
protected classContainer.AccessibleAWTContainer
This class provides accessibility support for subclasses of container.
Constructor Summary
Container()
Default constructor for subclasses.
Method Summary
Componentadd(Component comp)
Adds the specified component to this container at the end of the component list.
Componentadd(String name, Component comp)
Adds the specified component to the container at the end of the component list.
Componentadd(Component comp, int index)
Adds the specified component to this container at the specified index in the component list.
voidadd(Component comp, Object constraints)
Adds the specified component to this container at the end of the component list.
voidadd(Component comp, Object constraints, int index)
Adds the specified component to this container at the specified index in the component list.
voidaddContainerListener(ContainerListener listener)
Adds the specified container listener to this object's list of container listeners.
protected voidaddImpl(Component comp, Object constraints, int index)
This method is called by all the add() methods to perform the actual adding of the component.
voidaddNotify()
Called when this container is added to another container to inform it to create its peer.
voidaddPropertyChangeListener(PropertyChangeListener listener)
voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener)
voidapplyComponentOrientation(ComponentOrientation orientation)
Sets the ComponentOrientation property of this container and all components contained within it.
booleanareFocusTraversalKeysSet(int id)
Returns whether the Set of focus traversal keys for the given focus traversal operation has been explicitly defined for this Container.
intcountComponents()
Returns the number of components in this container.
voiddeliverEvent(Event e)
AWT 1.0 event processor.
voiddoLayout()
Layout the components in this container.
ComponentfindComponentAt(int x, int y)
Locates the visible child component that contains the specified position.
ComponentfindComponentAt(Point p)
Locates the visible child component that contains the specified position.
floatgetAlignmentX()
Returns the preferred alignment along the X axis.
floatgetAlignmentY()
Returns the preferred alignment along the Y axis.
ComponentgetComponent(int n)
Returns the component at the specified index.
ComponentgetComponentAt(int x, int y)
Returns the component located at the specified point.
ComponentgetComponentAt(Point p)
Returns the component located at the specified point.
intgetComponentCount()
Returns the number of components in this container.
Component[]getComponents()
Returns an array of the components in this container.
intgetComponentZOrder(Component comp)
Returns the Z ordering index of comp.
ContainerListener[]getContainerListeners()
Set<AWTKeyStroke>getFocusTraversalKeys(int id)
Returns the Set of focus traversal keys for a given traversal operation for this Container.
FocusTraversalPolicygetFocusTraversalPolicy()
Return the focus traversal policy that determines the focus traversal order for this Container's children.
InsetsgetInsets()
Returns the insets for this container, which is the space used for borders, the margin, etc.
LayoutManagergetLayout()
Returns the current layout manager for this container.
<T extends EventListener> T[]getListeners(Class<T> listenerType)
Returns all registered {@link EventListener}s of the given listenerType.
DimensiongetMaximumSize()
Returns the maximum size of this container.
DimensiongetMinimumSize()
Returns the minimum size of this container.
DimensiongetPreferredSize()
Returns the preferred size of this container.
Insetsinsets()
Returns the insets for this container, which is the space used for borders, the margin, etc.
voidinvalidate()
Invalidates this container to indicate that it (and all parent containers) need to be laid out.
booleanisAncestorOf(Component comp)
Tests whether or not the specified component is contained within this components subtree.
booleanisFocusCycleRoot(Container c)
Check whether the given Container is the focus cycle root of this Container's focus traversal cycle.
booleanisFocusCycleRoot()
Check whether this Container is a focus cycle root.
booleanisFocusTraversalPolicyProvider()
Set to true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used.
booleanisFocusTraversalPolicySet()
Check whether this Container's focus traversal policy has been explicitly set.
voidlayout()
Layout the components in this container.
voidlist(PrintStream out, int indent)
Writes a listing of this container to the specified stream starting at the specified indentation point.
voidlist(PrintWriter out, int indent)
Writes a listing of this container to the specified stream starting at the specified indentation point.
Componentlocate(int x, int y)
Returns the component located at the specified point.
DimensionminimumSize()
Returns the minimum size of this container.
voidpaint(Graphics g)
Paints this container.
voidpaintComponents(Graphics g)
Paints all of the components in this container.
protected StringparamString()
Returns a string representing the state of this container for debugging purposes.
DimensionpreferredSize()
Returns the preferred size of this container.
voidprint(Graphics g)
Prints this container.
voidprintComponents(Graphics g)
Prints all of the components in this container.
protected voidprocessContainerEvent(ContainerEvent e)
Called when a container event occurs if container events are enabled.
protected voidprocessEvent(AWTEvent e)
Processes the specified event.
voidremove(int index)
Removes the component at the specified index from this container.
voidremove(Component comp)
Removes the specified component from this container.
voidremoveAll()
Removes all components from this container.
voidremoveContainerListener(ContainerListener listener)
Removes the specified container listener from this object's list of container listeners.
voidremoveNotify()
Called when this container is removed from its parent container to inform it to destroy its peer.
voidsetComponentZOrder(Component comp, int index)
Sets the Z ordering for the component comp to index.
voidsetFocusCycleRoot(boolean focusCycleRoot)
Set whether or not this Container is the root of a focus traversal cycle.
voidsetFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
Sets the focus traversal keys for a given traversal operation for this Container.
voidsetFocusTraversalPolicy(FocusTraversalPolicy policy)
If this Container is a focus cycle root, set the focus traversal policy that determines the focus traversal order for its children.
voidsetFocusTraversalPolicyProvider(boolean b)
Set to true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used.
voidsetFont(Font f)
voidsetLayout(LayoutManager mgr)
Sets the layout manager for this container to the specified layout manager.
voidtransferFocusDownCycle()
Transfer focus down one focus traversal cycle.
voidupdate(Graphics g)
Updates this container.
voidvalidate()
Re-lays out the components in this container.
protected voidvalidateTree()
Recursively validates the container tree, recomputing any invalid layouts.

Constructor Detail

Container

public Container()
Default constructor for subclasses.

Method Detail

add

public Component add(Component comp)
Adds the specified component to this container at the end of the component list.

Parameters: comp The component to add to the container.

Returns: The same component that was added.

add

public Component add(String name, Component comp)
Adds the specified component to the container at the end of the component list. This method should not be used. Instead, use add(Component, Object).

Parameters: name The name of the component to be added. comp The component to be added.

Returns: The same component that was added.

See Also: add

add

public Component add(Component comp, int index)
Adds the specified component to this container at the specified index in the component list.

Parameters: comp The component to be added. index The index in the component list to insert this child at, or -1 to add at the end of the list.

Returns: The same component that was added.

Throws: ArrayIndexOutOfBoundsException If the specified index is invalid.

add

public void add(Component comp, Object constraints)
Adds the specified component to this container at the end of the component list. The layout manager will use the specified constraints when laying out this component.

Parameters: comp The component to be added to this container. constraints The layout constraints for this component.

add

public void add(Component comp, Object constraints, int index)
Adds the specified component to this container at the specified index in the component list. The layout manager will use the specified constraints when layout out this component.

Parameters: comp The component to be added. constraints The layout constraints for this component. index The index in the component list to insert this child at, or -1 to add at the end of the list.

Throws: ArrayIndexOutOfBoundsException If the specified index is invalid.

addContainerListener

public void addContainerListener(ContainerListener listener)
Adds the specified container listener to this object's list of container listeners.

Parameters: listener The listener to add.

addImpl

protected void addImpl(Component comp, Object constraints, int index)
This method is called by all the add() methods to perform the actual adding of the component. Subclasses who wish to perform their own processing when a component is added should override this method. Any subclass doing this must call the superclass version of this method in order to ensure proper functioning of the container.

Parameters: comp The component to be added. constraints The layout constraints for this component, or null if there are no constraints. index The index in the component list to insert this child at, or -1 to add at the end of the list.

Throws: ArrayIndexOutOfBoundsException If the specified index is invalid.

addNotify

public void addNotify()
Called when this container is added to another container to inform it to create its peer. Peers for any child components will also be created.

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

applyComponentOrientation

public void applyComponentOrientation(ComponentOrientation orientation)
Sets the ComponentOrientation property of this container and all components contained within it.

Throws: NullPointerException If orientation is null

Since: 1.4

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.

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

countComponents

public int countComponents()

Deprecated: use {@link #getComponentCount()} instead

Returns the number of components in this container.

Returns: The number of components in this container.

deliverEvent

public void deliverEvent(Event e)

Deprecated: use {@link #dispatchEvent(AWTEvent)} instead

AWT 1.0 event processor.

Parameters: e The event that occurred.

doLayout

public void doLayout()
Layout the components in this container.

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. findComponentAt differs from getComponentAt, because it recursively searches a Container's children.

Parameters: x - x coordinate y - 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.

findComponentAt

public Component findComponentAt(Point p)
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. findComponentAt differs from getComponentAt, because it recursively searches a Container's children.

Parameters: p - the component's location

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.

getAlignmentX

public float getAlignmentX()
Returns the preferred alignment along the X axis. This is a value between 0 and 1 where 0 represents alignment flush left and 1 means alignment flush right, and 0.5 means centered.

Returns: The preferred alignment along the X axis.

getAlignmentY

public float getAlignmentY()
Returns the preferred alignment along the Y axis. This is a value between 0 and 1 where 0 represents alignment flush top and 1 means alignment flush bottom, and 0.5 means centered.

Returns: The preferred alignment along the Y axis.

getComponent

public Component getComponent(int n)
Returns the component at the specified index.

Parameters: n The index of the component to retrieve.

Returns: The requested component.

Throws: ArrayIndexOutOfBoundsException If the specified index is invalid

getComponentAt

public Component getComponentAt(int x, int y)
Returns the component located at the specified point. This is done by checking whether or not a child component claims to contain this point. The first child component that does is returned. If no child component claims the point, the container itself is returned, unless the point does not exist within this container, in which case null is returned. When components overlap, the first component is returned. The component that is closest to (x, y), containing that location, is returned. Heavyweight components take precedence of lightweight components. This function does not ignore invisible components. If there is an invisible component at (x,y), it will be returned.

Parameters: x The X coordinate of the point. y The Y coordinate of the point.

Returns: The component containing the specified point, or null if there is no such point.

getComponentAt

public Component getComponentAt(Point p)
Returns the component located at the specified point. This is done by checking whether or not a child component claims to contain this point. The first child component that does is returned. If no child component claims the point, the container itself is returned, unless the point does not exist within this container, in which case null is returned. The top-most child component is returned in the case where components overlap. This is determined by finding the component closest to (x,y) and contains that location. Heavyweight components take precedence of lightweight components. This function does not ignore invisible components. If there is an invisible component at (x,y), it will be returned.

Parameters: p The point to return the component at.

Returns: The component containing the specified point, or null if there is no such point.

getComponentCount

public int getComponentCount()
Returns the number of components in this container.

Returns: The number of components in this container.

getComponents

public Component[] getComponents()
Returns an array of the components in this container.

Returns: The components in this container.

getComponentZOrder

public final int getComponentZOrder(Component comp)
Returns the Z ordering index of comp. If comp is not a child component of this Container, this returns -1.

Parameters: comp the component for which to query the Z ordering

Returns: the Z ordering index of comp or -1 if comp is not a child of this Container

Since: 1.5

See Also:

getContainerListeners

public ContainerListener[] getContainerListeners()

Since: 1.4

getFocusTraversalKeys

public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
Returns the Set of focus traversal keys for a given traversal operation for this Container.

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

getFocusTraversalPolicy

public FocusTraversalPolicy getFocusTraversalPolicy()
Return the focus traversal policy that determines the focus traversal order for this Container's children. This method returns null if this Container is not a focus cycle root. If the focus traversal policy has not been set explicitly, then this method will return an ancestor focus cycle root's policy instead.

Returns: this Container's focus traversal policy or null

Since: 1.4

getInsets

public Insets getInsets()
Returns the insets for this container, which is the space used for borders, the margin, etc.

Returns: The insets for this container.

getLayout

public LayoutManager getLayout()
Returns the current layout manager for this container.

Returns: The layout manager for this container.

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Returns all registered {@link EventListener}s of the given listenerType.

Parameters: listenerType the class of listeners to filter (null not permitted).

Returns: An array of registered listeners.

Throws: ClassCastException if listenerType does not implement the {@link EventListener} interface. NullPointerException if listenerType is null.

Since: 1.3

See Also:

getMaximumSize

public Dimension getMaximumSize()
Returns the maximum size of this container.

Returns: The maximum size of this container.

getMinimumSize

public Dimension getMinimumSize()
Returns the minimum size of this container.

Returns: The minimum size of this container.

getPreferredSize

public Dimension getPreferredSize()
Returns the preferred size of this container.

Returns: The preferred size of this container.

insets

public Insets insets()

Deprecated: use {@link #getInsets()} instead

Returns the insets for this container, which is the space used for borders, the margin, etc.

Returns: The insets for this container.

invalidate

public void invalidate()
Invalidates this container to indicate that it (and all parent containers) need to be laid out.

isAncestorOf

public boolean isAncestorOf(Component comp)
Tests whether or not the specified component is contained within this components subtree.

Parameters: comp The component to test.

Returns: true if this container is an ancestor of the specified component, false otherwise.

isFocusCycleRoot

public boolean isFocusCycleRoot(Container c)
Check whether the given Container is the focus cycle root of this Container's focus traversal cycle. If this Container is a focus cycle root itself, then it will be in two different focus cycles -- it's own, and that of its ancestor focus cycle root's. In that case, if c is either of those containers, this method will return true.

Parameters: c the candidate Container

Returns: true if c is the focus cycle root of the focus traversal cycle to which this Container belongs, false otherwise

Since: 1.4

isFocusCycleRoot

public boolean isFocusCycleRoot()
Check whether this Container is a focus cycle root.

Returns: true if this is a focus cycle root, false otherwise

Since: 1.4

isFocusTraversalPolicyProvider

public final boolean isFocusTraversalPolicyProvider()
Set to true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used.

Returns: true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used

Since: 1.5

See Also:

isFocusTraversalPolicySet

public boolean isFocusTraversalPolicySet()
Check whether this Container's focus traversal policy has been explicitly set. If it has not, then this Container will inherit its focus traversal policy from one of its ancestor focus cycle roots.

Returns: true if focus traversal policy is set, false otherwise

layout

public void layout()

Deprecated: use {@link #doLayout()} instead

Layout the components in this container.

list

public void list(PrintStream out, int indent)
Writes a listing of this container to the specified stream starting at the specified indentation point.

Parameters: out The PrintStream to write to. indent The indentation point.

list

public void list(PrintWriter out, int indent)
Writes a listing of this container to the specified stream starting at the specified indentation point.

Parameters: out The PrintWriter to write to. indent The indentation point.

locate

public Component locate(int x, int y)

Deprecated: use {@link #getComponentAt(int, int)} instead

Returns the component located at the specified point. This is done by checking whether or not a child component claims to contain this point. The first child component that does is returned. If no child component claims the point, the container itself is returned, unless the point does not exist within this container, in which case null is returned. When components overlap, the first component is returned. The component that is closest to (x, y), containing that location, is returned. Heavyweight components take precedence of lightweight components. This function does not ignore invisible components. If there is an invisible component at (x,y), it will be returned.

Parameters: x The x position of the point to return the component at. y The y position of the point to return the component at.

Returns: The component containing the specified point, or null if there is no such point.

minimumSize

public Dimension minimumSize()

Deprecated: use {@link #getMinimumSize()} instead

Returns the minimum size of this container.

Returns: The minimum size of this container.

paint

public void paint(Graphics g)
Paints this container. The implementation of this method in this class forwards to any lightweight components in this container. If this method is subclassed, this method should still be invoked as a superclass method so that lightweight components are properly drawn.

Parameters: g - The graphics context for this paint job.

paintComponents

public void paintComponents(Graphics g)
Paints all of the components in this container.

Parameters: g The graphics context for this paint job.

paramString

protected String paramString()
Returns a string representing the state of this container for debugging purposes.

Returns: A string representing the state of this container.

preferredSize

public Dimension preferredSize()

Deprecated: use {@link #getPreferredSize()} instead

Returns the preferred size of this container.

Returns: The preferred size of this container.

print

public void print(Graphics g)
Prints this container. The implementation of this method in this class forwards to any lightweight components in this container. If this method is subclassed, this method should still be invoked as a superclass method so that lightweight components are properly drawn.

Parameters: g The graphics context for this print job.

printComponents

public void printComponents(Graphics g)
Prints all of the components in this container.

Parameters: g The graphics context for this print job.

processContainerEvent

protected void processContainerEvent(ContainerEvent e)
Called when a container event occurs if container events are enabled. This method calls any registered listeners.

Parameters: e The event that occurred.

processEvent

protected void processEvent(AWTEvent e)
Processes the specified event. This method calls processContainerEvent() if this method is a ContainerEvent, otherwise it calls the superclass method.

Parameters: e The event to be processed.

remove

public void remove(int index)
Removes the component at the specified index from this container.

Parameters: index The index of the component to remove.

remove

public void remove(Component comp)
Removes the specified component from this container.

Parameters: comp The component to remove from this container.

removeAll

public void removeAll()
Removes all components from this container.

removeContainerListener

public void removeContainerListener(ContainerListener listener)
Removes the specified container listener from this object's list of container listeners.

Parameters: listener The listener to remove.

removeNotify

public void removeNotify()
Called when this container is removed from its parent container to inform it to destroy its peer. This causes the peers of all child component to be destroyed as well.

setComponentZOrder

public final void setComponentZOrder(Component comp, int index)
Sets the Z ordering for the component comp to index. Components with lower Z order paint above components with higher Z order.

Parameters: comp the component for which to change the Z ordering index the index to set

Throws: NullPointerException if comp == null IllegalArgumentException if comp is an ancestor of this container IllegalArgumentException if index is not in [0, getComponentCount()] for moving between containers or [0, getComponentCount() - 1] for moving inside this container IllegalArgumentException if comp == this IllegalArgumentException if comp is a Window

Since: 1.5

See Also:

setFocusCycleRoot

public void setFocusCycleRoot(boolean focusCycleRoot)
Set whether or not this Container is the root of a focus traversal cycle. This Container's focus traversal policy determines the order of focus traversal. Some policies prevent the focus from being transferred between two traversal cycles until an up or down traversal operation is performed. In that case, normal traversal (not up or down) is limited to this Container and all of this Container's descendents that are not descendents of inferior focus cycle roots. In the default case however, ContainerOrderFocusTraversalPolicy is in effect, and it supports implicit down-cycle traversal operations.

Parameters: focusCycleRoot true if this is a focus cycle root, false otherwise

Since: 1.4

setFocusTraversalKeys

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

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

setFocusTraversalPolicy

public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
If this Container is a focus cycle root, set the focus traversal policy that determines the focus traversal order for its children. If non-null, this policy will be inherited by all inferior focus cycle roots. If policy is null, this Container will inherit its policy from the closest ancestor focus cycle root that's had its policy set.

Parameters: policy the new focus traversal policy for this Container or null

Since: 1.4

setFocusTraversalPolicyProvider

public final void setFocusTraversalPolicyProvider(boolean b)
Set to true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used.

Parameters: b true if this container provides a focus traversal policy, false when the root container's focus traversal policy should be used

Since: 1.5

See Also:

setFont

public void setFont(Font f)

setLayout

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

Parameters: mgr The new layout manager for this container.

transferFocusDownCycle

public void transferFocusDownCycle()
Transfer focus down one focus traversal cycle. If this Container is a focus cycle root, then its default component becomes the focus owner, and this Container becomes the current focus cycle root. No traversal will occur if this Container is not a focus cycle root.

Since: 1.4

update

public void update(Graphics g)
Updates this container. The implementation of this method in this class forwards to any lightweight components in this container. If this method is subclassed, this method should still be invoked as a superclass method so that lightweight components are properly drawn.

Parameters: g The graphics context for this update.

UNKNOWN: The specification suggests that this method forwards the update() call to all its lightweight children. Tests show that this is not done either in the JDK. The exact behaviour seems to be that the background is cleared in heavyweight Containers, and all other containers directly call paint(), causing the (lightweight) children to be painted.

validate

public void validate()
Re-lays out the components in this container.

validateTree

protected void validateTree()
Recursively validates the container tree, recomputing any invalid layouts.