# Class HierarchyEvent

java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.HierarchyEvent

All Implemented Interfaces:
  `Serializable`

public class HierarchyEvent extends AWTEvent
An event which indicates a change to the `Component` hierarchy to which `Component` belongs.

- Hierarchy Change Events (HierarchyListener)
  - addition of an ancestor
  - removal of an ancestor
  - hierarchy made displayable
  - hierarchy made undisplayable
  - hierarchy shown on the screen (both visible and displayable)
  - hierarchy hidden on the screen (either invisible or undisplayable)
- Ancestor Reshape Events (HierarchyBoundsListener)
  - an ancestor was resized
  - an ancestor was moved

Hierarchy events are provided for notification purposes ONLY. The AWT will automatically handle changes to the hierarchy internally so that GUI layout and displayability works properly regardless of whether a program is receiving these events or not.

This event is generated by a Container object (such as a Panel) when the Container is added, removed, moved, or resized, and passed down the hierarchy. It is also generated by a Component object when that object's `addNotify`, `removeNotify`, `show`, or `hide` method is called. The `ANCESTOR_MOVED` and `ANCESTOR_RESIZED` events are dispatched to every `HierarchyBoundsListener` or `HierarchyBoundsAdapter` object which registered to receive such events using the Component's `addHierarchyBoundsListener` method. (`HierarchyBoundsAdapter` objects implement the `HierarchyBoundsListener` interface.) The `HIERARCHY_CHANGED` events are dispatched to every `HierarchyListener` object which registered to receive such events using the Component's `addHierarchyListener` method. Each such listener object gets this `HierarchyEvent` when the event occurs.

An unspecified behavior will be caused if the `id` parameter of any particular `HierarchyEvent` instance is not in the range from `HIERARCHY_FIRST` to `HIERARCHY_LAST`.
The `changeFlags` parameter of any `HierarchyEvent` instance takes one of the following values:

- `HierarchyEvent.PARENT_CHANGED`
- `HierarchyEvent.DISPLAYABILITY_CHANGED`
- `HierarchyEvent.SHOWING_CHANGED`

Assigning the value different from listed above will cause unspecified behavior.

Since:
  1.3
See Also:
  - `HierarchyListener`
  - `HierarchyBoundsAdapter`
  - `HierarchyBoundsListener`
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ANCESTOR_MOVED`
The event id indicating an ancestor-Container was moved.
`static final int`
`ANCESTOR_RESIZED`
The event id indicating an ancestor-Container was resized.
`static final int`
`DISPLAYABILITY_CHANGED`
A change flag indicates that the `HIERARCHY_CHANGED` event was generated due to the changing of the hierarchy displayability.
`static final int`
`HIERARCHY_CHANGED`
The event id indicating that modification was made to the entire hierarchy tree.
`static final int`
`HIERARCHY_FIRST`
Marks the first integer id for the range of hierarchy event ids.
`static final int`
`HIERARCHY_LAST`
Marks the last integer id for the range of ancestor event ids.
`static final int`
`PARENT_CHANGED`
A change flag indicates that the `HIERARCHY_CHANGED` event was generated by a reparenting operation.
`static final int`
`SHOWING_CHANGED`
A change flag indicates that the `HIERARCHY_CHANGED` event was generated due to the changing of the hierarchy showing state.

### 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
`HierarchyEvent(Component source, int id, Component changed, Container changedParent)`
Constructs an `HierarchyEvent` object to identify a change in the `Component` hierarchy.
`HierarchyEvent(Component source, int id, Component changed, Container changedParent, long changeFlags)`
Constructs an `HierarchyEvent` object to identify a change in the `Component` hierarchy.

## Method Summary

Modifier and Type
Method
Description
`Component`
`getChanged()`
Returns the Component at the top of the hierarchy which was changed.
`Container`
`getChangedParent()`
Returns the parent of the Component returned by `getChanged()`.
`long`
`getChangeFlags()`
Returns a bitmask which indicates the type(s) of HIERARCHY_CHANGED events represented in this event object.
`Component`
`getComponent()`
Returns the originator of the event.
`String`
`paramString()`
Returns a parameter string identifying this 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

### HIERARCHY_FIRST

public static final int HIERARCHY_FIRST
Marks the first integer id for the range of hierarchy event ids.

See Also:
  - Constant Field Values

### HIERARCHY_CHANGED

public static final int HIERARCHY_CHANGED
The event id indicating that modification was made to the entire hierarchy tree.

See Also:
  - Constant Field Values

### ANCESTOR_MOVED

public static final int ANCESTOR_MOVED
The event id indicating an ancestor-Container was moved.

See Also:
  - Constant Field Values

### ANCESTOR_RESIZED

public static final int ANCESTOR_RESIZED
The event id indicating an ancestor-Container was resized.

See Also:
  - Constant Field Values

### HIERARCHY_LAST

public static final int HIERARCHY_LAST
Marks the last integer id for the range of ancestor event ids.

See Also:
  - Constant Field Values

### PARENT_CHANGED

public static final int PARENT_CHANGED
A change flag indicates that the `HIERARCHY_CHANGED` event was generated by a reparenting operation.

See Also:
  - Constant Field Values

### DISPLAYABILITY_CHANGED

public static final int DISPLAYABILITY_CHANGED
A change flag indicates that the `HIERARCHY_CHANGED` event was generated due to the changing of the hierarchy displayability. To discern the current displayability of the hierarchy, call the `Component.isDisplayable` method. Displayability changes occur in response to explicit or implicit calls of the `Component.addNotify` and `Component.removeNotify` methods.

See Also:
  - `Component.isDisplayable()`
  - `Component.addNotify()`
  - `Component.removeNotify()`
  - Constant Field Values

### SHOWING_CHANGED

public static final int SHOWING_CHANGED
A change flag indicates that the `HIERARCHY_CHANGED` event was generated due to the changing of the hierarchy showing state. To discern the current showing state of the hierarchy, call the `Component.isShowing` method. Showing state changes occur when either the displayability or visibility of the hierarchy occurs. Visibility changes occur in response to explicit or implicit calls of the `Component.show` and `Component.hide` methods.

See Also:
  - `Component.isShowing()`
  - `Component.addNotify()`
  - `Component.removeNotify()`
  - `Component.show()`
  - `Component.hide()`
  - Constant Field Values

## Constructor Details

### HierarchyEvent

public HierarchyEvent(Component source, int id, Component changed, Container changedParent)
Constructs an `HierarchyEvent` object to identify a change in the `Component` hierarchy.

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

Parameters:
  `source` - The `Component` object that originated the event
  `id` - An integer indicating the type of event. For information on allowable values, see the class description for `HierarchyEvent`
  `changed` - The `Component` at the top of the hierarchy which was changed
  `changedParent` - The parent of the `changed` component. This may be the parent before or after the change, depending on the type of change
Throws:
  `IllegalArgumentException` - if `source` is `null`
See Also:
  - `EventObject.getSource()`
  - `AWTEvent.getID()`
  - `getChanged()`
  - `getChangedParent()`

### HierarchyEvent

public HierarchyEvent(Component source, int id, Component changed, Container changedParent, long changeFlags)
Constructs an `HierarchyEvent` object to identify a change in the `Component` hierarchy.

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

Parameters:
  `source` - The `Component` object that originated the event
  `id` - An integer indicating the type of event. For information on allowable values, see the class description for `HierarchyEvent`
  `changed` - The `Component` at the top of the hierarchy which was changed
  `changedParent` - The parent of the `changed` component. This may be the parent before or after the change, depending on the type of change
  `changeFlags` - A bitmask which indicates the type(s) of the `HIERARCHY_CHANGED` events represented in this event object. For information on allowable values, see the class description for `HierarchyEvent`
Throws:
  `IllegalArgumentException` - if `source` is null
See Also:
  - `EventObject.getSource()`
  - `AWTEvent.getID()`
  - `getChanged()`
  - `getChangedParent()`
  - `getChangeFlags()`

## Method Details

### getComponent

public Component getComponent()
Returns the originator of the event.

Returns:
  the `Component` object that originated the event, or `null` if the object is not a `Component`.

### getChanged

public Component getChanged()
Returns the Component at the top of the hierarchy which was changed.

Returns:
  the changed Component

### getChangedParent

public Container getChangedParent()
Returns the parent of the Component returned by `getChanged()`. For a HIERARCHY_CHANGED event where the change was of type PARENT_CHANGED via a call to `Container.add`, the parent returned is the parent after the add operation. For a HIERARCHY_CHANGED event where the change was of type PARENT_CHANGED via a call to `Container.remove`, the parent returned is the parent before the remove operation. For all other events and types, the parent returned is the parent during the operation.

Returns:
  the parent of the changed Component

### getChangeFlags

public long getChangeFlags()
Returns a bitmask which indicates the type(s) of HIERARCHY_CHANGED events represented in this event object. The bits have been bitwise-ored together.

Returns:
  the bitmask, or 0 if this is not an HIERARCHY_CHANGED event

### 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 `AWTEvent`
Returns:
  a string identifying the event and its attributes