# Class ContainerEvent

java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent
java.awt.event.ContainerEvent

All Implemented Interfaces:
  `Serializable`

public class ContainerEvent extends ComponentEvent
A low-level event which indicates that a container's contents changed because a component was added or removed.

Container events are provided for notification purposes ONLY; The AWT will automatically handle changes to the containers contents internally so that the program works properly regardless of whether the program is receiving these events or not.

This low-level event is generated by a container object (such as a Panel) when a component is added to it or removed from it. The event is passed to every `ContainerListener` or `ContainerAdapter` object which registered to receive such events using the component's `addContainerListener` method. (`ContainerAdapter` objects implement the `ContainerListener` interface.) Each such listener object gets this `ContainerEvent` when the event occurs.

An unspecified behavior will be caused if the `id` parameter of any particular `ContainerEvent` instance is not in the range from `CONTAINER_FIRST` to `CONTAINER_LAST`.

Since:
  1.1
See Also:
  - `ContainerAdapter`
  - `ContainerListener`
  - Tutorial: Writing a Container Listener
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `COMPONENT_ADDED`
  This event indicates that a component was added to the container.
  `static final int`
  `COMPONENT_REMOVED`
  This event indicates that a component was removed from the container.
  `static final int`
  `CONTAINER_FIRST`
  The first number in the range of ids used for container events.
  `static final int`
  `CONTAINER_LAST`
  The last number in the range of ids used for container events.

  ### Fields declared in class ComponentEvent

  `COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN`
  Modifier and Type
  Field
  Description
  `static final int`
  `COMPONENT_FIRST`
  The first number in the range of ids used for component events.
  `static final int`
  `COMPONENT_HIDDEN`
  This event indicates that the component was rendered invisible.
  `static final int`
  `COMPONENT_LAST`
  The last number in the range of ids used for component events.
  `static final int`
  `COMPONENT_MOVED`
  This event indicates that the component's position changed.
  `static final int`
  `COMPONENT_RESIZED`
  This event indicates that the component's size changed.
  `static final int`
  `COMPONENT_SHOWN`
  This event indicates that the component was made visible.

  ### Fields declared in class AWTEvent

  `ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK`
  Modifier and Type
  Field
  Description
  `static final long`
  `ACTION_EVENT_MASK`
  The event mask for selecting action events.
  `static final long`
  `ADJUSTMENT_EVENT_MASK`
  The event mask for selecting adjustment events.
  `static final long`
  `COMPONENT_EVENT_MASK`
  The event mask for selecting component events.
  `protected boolean`
  `consumed`
  Controls whether or not the event is sent back down to the peer once the source has processed it - false means it's sent to the peer; true means it's not.
  `static final long`
  `CONTAINER_EVENT_MASK`
  The event mask for selecting container events.
  `static final long`
  `FOCUS_EVENT_MASK`
  The event mask for selecting focus events.
  `static final long`
  `HIERARCHY_BOUNDS_EVENT_MASK`
  The event mask for selecting hierarchy bounds events.
  `static final long`
  `HIERARCHY_EVENT_MASK`
  The event mask for selecting hierarchy events.
  `protected int`
  `id`
  The event's id.
  `static final long`
  `INPUT_METHOD_EVENT_MASK`
  The event mask for selecting input method events.
  `static final long`
  `INVOCATION_EVENT_MASK`
  The event mask for selecting invocation events.
  `static final long`
  `ITEM_EVENT_MASK`
  The event mask for selecting item events.
  `static final long`
  `KEY_EVENT_MASK`
  The event mask for selecting key events.
  `static final long`
  `MOUSE_EVENT_MASK`
  The event mask for selecting mouse events.
  `static final long`
  `MOUSE_MOTION_EVENT_MASK`
  The event mask for selecting mouse motion events.
  `static final long`
  `MOUSE_WHEEL_EVENT_MASK`
  The event mask for selecting mouse wheel events.
  `static final long`
  `PAINT_EVENT_MASK`
  The event mask for selecting paint events.
  `static final int`
  `RESERVED_ID_MAX`
  The maximum value for reserved AWT event IDs.
  `static final long`
  `TEXT_EVENT_MASK`
  The event mask for selecting text events.
  `static final long`
  `WINDOW_EVENT_MASK`
  The event mask for selecting window events.
  `static final long`
  `WINDOW_FOCUS_EVENT_MASK`
  The event mask for selecting window focus events.
  `static final long`
  `WINDOW_STATE_EVENT_MASK`
  The event mask for selecting window state events.

  ### Fields declared in class EventObject

  `source`
  Modifier and Type
  Field
  Description
  `protected Object`
  `source`
  The object on which the Event initially occurred.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ContainerEvent(Component source, int id, Component child)`
  Constructs a `ContainerEvent` object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Component`
  `getChild()`
  Returns the component that was affected by the event.
  `Container`
  `getContainer()`
  Returns the originator of the event.
  `String`
  `paramString()`
  Returns a parameter string identifying this event.

  ### Methods declared in class ComponentEvent

  `getComponent`
  Modifier and Type
  Method
  Description
  `Component`
  `getComponent()`
  Returns the originator of the event.

  ### Methods declared in class AWTEvent

  `consume, getID, isConsumed, setSource, toString`
  Modifier and Type
  Method
  Description
  `protected void`
  `consume()`
  Consumes this event, if this event can be consumed.
  `int`
  `getID()`
  Returns the event type.
  `protected boolean`
  `isConsumed()`
  Returns whether this event has been consumed.
  `void`
  `setSource(Object newSource)`
  Retargets an event to a new source.
  `String`
  `toString()`
  Returns a String representation of this object.

  ### Methods declared in class EventObject

  `getSource`
  Modifier and Type
  Method
  Description
  `Object`
  `getSource()`
  The object on which the Event initially occurred.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### CONTAINER_FIRST

    public static final int CONTAINER_FIRST
    The first number in the range of ids used for container events.
    See Also:
      - Constant Field Values

  - ### CONTAINER_LAST

    public static final int CONTAINER_LAST
    The last number in the range of ids used for container events.
    See Also:
      - Constant Field Values

  - ### COMPONENT_ADDED

    public static final int COMPONENT_ADDED
    This event indicates that a component was added to the container.
    See Also:
      - Constant Field Values

  - ### COMPONENT_REMOVED

    public static final int COMPONENT_REMOVED
    This event indicates that a component was removed from the container.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ContainerEvent

    public ContainerEvent(Component source, int id, Component child)
    Constructs a `ContainerEvent` object.

    This method throws an `IllegalArgumentException` if `source` is `null`.

    Parameters:
      `source` - The `Component` object (container) that originated the event
      `id` - An integer indicating the type of event. For information on allowable values, see the class description for `ContainerEvent`
      `child` - the component that was added or removed
    Throws:
      `IllegalArgumentException` - if `source` is null
    See Also:
      - `getContainer()`
      - `AWTEvent.getID()`
      - `getChild()`

- ## Method Details

  - ### getContainer

    public Container getContainer()
    Returns the originator of the event.
    Returns:
      the `Container` object that originated the event, or `null` if the object is not a `Container`.

  - ### getChild

    public Component getChild()
    Returns the component that was affected by the event.
    Returns:
      the Component object that was added or removed

  - ### paramString

    public String paramString()
    Returns a parameter string identifying this event. This method is useful for event-logging and for debugging.
    Overrides:
      `paramString` in class `ComponentEvent`
    Returns:
      a string identifying the event and its attributes