FileDocCategorySizeDatePackage
HierarchyEvent.javaAPI DocJava SE 5 API10483Fri Aug 26 14:56:50 BST 2005java.awt.event

HierarchyEvent

public class HierarchyEvent extends AWTEvent
An event which indicates a change to the Component hierarchy to which a 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. 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.) 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.

author
David Mendenhall
version
1.12, 12/19/03
see
HierarchyListener
see
HierarchyBoundsAdapter
see
HierarchyBoundsListener
since
1.3

Fields Summary
public static final int
HIERARCHY_FIRST
Marks the first integer id for the range of hierarchy event ids.
public static final int
HIERARCHY_CHANGED
The event id indicating that modification was made to the entire hierarchy tree.
public static final int
ANCESTOR_MOVED
The event id indicating an ancestor-Container was moved.
public static final int
ANCESTOR_RESIZED
The event id indicating an ancestor-Container was resized.
public static final int
HIERARCHY_LAST
Marks the last integer id for the range of ancestor event ids.
public static final int
PARENT_CHANGED
Indicates that the HIERARCHY_CHANGED event was generated by a reparenting operation.
public static final int
DISPLAYABILITY_CHANGED
Indicates that the HIERARCHY_CHANGED event was generated due to a change in the displayability of the hierarchy. To discern the current displayability of the hierarchy, call Component.isDisplayable. Displayability changes occur in response to explicit or implicit calls to Component.addNotify and Component.removeNotify.
public static final int
SHOWING_CHANGED
Indicates that the HIERARCHY_CHANGED event was generated due to a change in the showing state of the hierarchy. To discern the current showing state of the hierarchy, call Component.isShowing. Showing state changes occur when either the displayability or visibility of the hierarchy occurs. Visibility changes occur in response to explicit or implicit calls to Component.show and Component.hide.
Component
changed
Container
changedParent
long
changeFlags
Constructors Summary
public HierarchyEvent(Component source, int id, Component changed, Container changedParent)
Constructs an HierarchyEvent object to identify a change in the Component hierarchy.

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

param
source the Component object that originated the event
param
id an integer indicating the type of event
param
changed the Component at the top of the hierarchy which was changed
param
changedParent the parent of changed; this may be the parent before or after the change, depending on the type of change
throws
IllegalArgumentException if source is null


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

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

param
source the Component object that originated the event
param
id an integer indicating the type of event
param
changed the Component at the top of the hierarchy which was changed
param
changedParent the parent of changed; this may be the parent before or after the change, depending on the type of change
param
changeFlags a bitmask which indicates the type(s) of HIERARCHY_CHANGED events represented in this event object
throws
IllegalArgumentException if source is null

        super(source, id);
	this.changed = changed;
	this.changedParent = changedParent;
	this.changeFlags = changeFlags;
    
Methods Summary
public longgetChangeFlags()
Returns a bitmask which indicates the type(s) of HIERARCHY_CHANGED events represented in this event object. The bits have been bitwise-ored together.

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

        return changeFlags;
    
public java.awt.ComponentgetChanged()
Returns the Component at the top of the hierarchy which was changed.

return
the changed Component

        return changed;
    
public java.awt.ContainergetChangedParent()
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.

return
the parent of the changed Component

        return changedParent;
    
public java.awt.ComponentgetComponent()
Returns the originator of the event.

return
the Component object that originated the event, or null if the object is not a Component.

        return (source instanceof Component) ? (Component)source : null;
    
public java.lang.StringparamString()
Returns a parameter string identifying this event. This method is useful for event-logging and for debugging.

return
a string identifying the event and its attributes

        String typeStr;
	switch(id) {
	  case ANCESTOR_MOVED:
	      typeStr = "ANCESTOR_MOVED ("+changed+","+changedParent+")";
	      break;
	  case ANCESTOR_RESIZED:
	      typeStr = "ANCESTOR_RESIZED ("+changed+","+changedParent+")";
	      break;
	  case HIERARCHY_CHANGED: {
	      typeStr = "HIERARCHY_CHANGED (";
	      boolean first = true;
	      if ((changeFlags & PARENT_CHANGED) != 0) {
		  first = false;
		  typeStr += "PARENT_CHANGED";
	      }
	      if ((changeFlags & DISPLAYABILITY_CHANGED) != 0) {
		  if (first) {
		      first = false;
		  } else {
		      typeStr += ",";
		  }
		  typeStr += "DISPLAYABILITY_CHANGED";
	      }
	      if ((changeFlags & SHOWING_CHANGED) != 0) {
		  if (first) {
		      first = false;
		  } else {
		      typeStr += ",";
		  }
		  typeStr += "SHOWING_CHANGED";
	      }
	      if (!first) {
		  typeStr += ",";
	      }
	      typeStr += changed + "," + changedParent + ")";
	      break;
	  }
	  default:
	      typeStr = "unknown type";
	}
	return typeStr;