java.awt.event

接口
java.lang.Object
  继承者 java.util.EventObject
      继承者 java.awt.AWTEvent
          继承者 java.awt.event.HierarchyEvent
所有已实现的接口:
Serializable

public class HierarchyEvent
     
extends AWTEvent

指示 Component 所属的 Component 层次结构发生更改的事件。

  • 层次结构更改事件 (HierarchyListener)
    • 添加一个祖先
    • 移除一个祖先
    • 层次结构变得可以显示
    • 层次结构变得不可显示
    • 显示在屏幕上的层次结构(既包括可见的,也包括不可见的)
    • 屏幕上隐藏的层次结构(可见的或不可见的)
  • 祖先重塑事件 (HierarchyBoundsListener)
    • 重新调整祖先的大小
    • 移动一个祖先

层次结构事件“仅”为通知目的而提供。AWT 将自动内部处理层次结构的更改,使 GUI 布局和可显示性正常工作,而不管该程序是否接收这些事件。

此事件由 Container 对象(比如 Panel)在 Container 被添加、移除、移动或调整大小时生成,并顺着层次结构向下传递。Component 对象在调用其 addNotifyremoveNotifyshowhide 方法时,也生成此事件。ANCESTOR_MOVED 和 ANCESTOR_RESIZED 事件被指派到每个 HierarchyBoundsListenerHierarchyBoundsAdapter 对象,这些对象已使用 Component 的 addHierarchyBoundsListener 方法注册,以接收这类事件。(HierarchyBoundsAdapter 对象实现 HierarchyBoundsListener 接口。)HIERARCHY_CHANGED 事件被指派到每个 HierarchyListener,这些对象已使用 Component 的 addHierarchyListener 方法注册,以接收这类事件。当发生该事件时,所有这类侦听器对象都获取此 HierarchyEvent

从以下版本开始:
1.3
另请参见:
HierarchyListener, HierarchyBoundsAdapter, HierarchyBoundsListener, 序列化表格

字段摘要
static int ANCESTOR_MOVED
          指示祖先 Container 被移动的事件 id。
static int ANCESTOR_RESIZED
          指示祖先 Container 大小被调整的事件 id。
static int DISPLAYABILITY_CHANGED
          指示 HIERARCHY_CHANGED 事件是因为层次结构的可显示性发生更改而生成的。
static int HIERARCHY_CHANGED
          指示对整个层次结构树进行修改的事件 id。
static int HIERARCHY_FIRST
          标记层次结构事件 id 范围的第一个整数 id。
static int HIERARCHY_LAST
          标记祖先事件 id 范围的最后一个整数 id。
static int PARENT_CHANGED
          指示 HIERARCHY_CHANGED 事件是通过 reparenting 操作生成的。
static int SHOWING_CHANGED
          指示 HIERARCHY_CHANGED 事件是因为层次结构的显示状态发生更改而生成的。
 
从类 java.awt.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
 
从类 java.util.EventObject 继承的字段
source
 
构造方法摘要
HierarchyEvent(Component source, int id, Component changed, Container changedParent)
          构造一个 HierarchyEvent 对象来标识 Component 层次结构中的更改。
HierarchyEvent(Component source, int id, Component changed, Container changedParent, long changeFlags)
          构造一个 HierarchyEvent 对象来标识 Component 层次结构中的更改。
 
方法摘要
 Component getChanged()
          返回位于被更改层次结构顶部的 Component。
 Container getChangedParent()
          返回由 getChanged() 返回的 Component 的父级。
 long getChangeFlags()
          返回指示此事件对象中表示的 HIERARCHY_CHANGED 事件类型的位掩码。
 Component getComponent()
          返回事件的始发者。
 String paramString()
          返回标识此事件的参数字符串。
 
从类 java.awt.AWTEvent 继承的方法
consume, getID, isConsumed, setSource, toString
 
从类 java.util.EventObject 继承的方法
getSource
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

HIERARCHY_FIRST

public static final int HIERARCHY_FIRST
标记层次结构事件 id 范围的第一个整数 id。

另请参见:
常量字段值

HIERARCHY_CHANGED

public static final int HIERARCHY_CHANGED
指示对整个层次结构树进行修改的事件 id。

另请参见:
常量字段值

ANCESTOR_MOVED

public static final int ANCESTOR_MOVED
指示祖先 Container 被移动的事件 id。

另请参见:
常量字段值

ANCESTOR_RESIZED

public static final int ANCESTOR_RESIZED
指示祖先 Container 大小被调整的事件 id。

另请参见:
常量字段值

HIERARCHY_LAST

public static final int HIERARCHY_LAST
标记祖先事件 id 范围的最后一个整数 id。

另请参见:
常量字段值

PARENT_CHANGED

public static final int PARENT_CHANGED
指示 HIERARCHY_CHANGED 事件是通过 reparenting 操作生成的。

另请参见:
常量字段值

DISPLAYABILITY_CHANGED

public static final int DISPLAYABILITY_CHANGED
指示 HIERARCHY_CHANGED 事件是因为层次结构的可显示性发生更改而生成的。要了解层次结构的当前可显示性,调用 Component.isDisplayable。可显示性更改发生在响应对 Component.addNotifyComponent.removeNotify 的显式或隐式调用时。

另请参见:
Component.isDisplayable(), Component.addNotify(), Component.removeNotify(), 常量字段值

SHOWING_CHANGED

public static final int SHOWING_CHANGED
指示 HIERARCHY_CHANGED 事件是因为层次结构的显示状态发生更改而生成的。要了解层次结构的当前显示状态,请调用 Component.isShowing。显示状态更改发生在层次结构可显示或可见时。可见性更改发生在响应对 Component.showComponent.hide 的显式或隐式调用时。

另请参见:
Component.isShowing(), Component.addNotify(), Component.removeNotify(), Component.show(), Component.hide(), 常量字段值
构造方法详细信息

HierarchyEvent

public HierarchyEvent(Component source,
                      int id,
                      Component changed,
                      Container changedParent)
构造一个 HierarchyEvent 对象来标识 Component 层次结构中的更改。

注意,传入无效 id 会导致未指定的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 发起事件的 Component 对象
id - 指示事件类型的整数
changed - 位于被更改层次结构顶部的 Component
changedParent - changed 的父级;它可以是该更改之前或之后的父级,这取决于更改的类型
抛出:
IllegalArgumentException - 如果 source 为 null

HierarchyEvent

public HierarchyEvent(Component source,
                      int id,
                      Component changed,
                      Container changedParent,
                      long changeFlags)
构造一个 HierarchyEvent 对象来标识 Component 层次结构中的更改。

注意,传递无效的 id 会导致不明确的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 发起事件的 Component 对象
id - 指示事件类型的整数
changed - 位于被更改层次结构顶部的 Component
changedParent - changed 的父级;它可以是该更改之前或之后的父级,这取决于更改的类型
changeFlags - 指示此事件对象中表示的 HIERARCHY_CHANGED 事件类型的位掩码
抛出:
IllegalArgumentException - 如果 source 为 null
方法详细信息

getComponent

public Component getComponent()
返回事件的始发者。

返回:
发起事件的 Component 对象,如果该对象不是一个 Component,则返回 null

getChanged

public Component getChanged()
返回位于被更改层次结构顶部的 Component。

返回:
更改的 Component

getChangedParent

public Container getChangedParent()
返回由 getChanged() 返回的 Component 的父级。对于更改类型为 PARENT_CHANGED 并通过调用 Container.add 实现的 HIERARCHY_CHANGED 事件,返回的父级是添加操作之后的父级。对于更改类型为 PARENT_CHANGED 并通过调用 Container.remove 实现的 HIERARCHY_CHANGED 事件,返回的父级是移除操作之前的父级。对于其他所有事件和类型,返回的父级是操作期间的父级。

返回:
所更改 Component 的父级

getChangeFlags

public long getChangeFlags()
返回指示此事件对象中表示的 HIERARCHY_CHANGED 事件类型的位掩码。这些位一起被执行了按位或运算。

返回:
位掩码,如果此事件不是 HIERARCHY_CHANGED 事件,则返回 0

paramString

public String paramString()
返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。

覆盖:
AWTEvent 中的 paramString
返回:
标识事件及其属性的字符串