Module java.desktop
Package java.awt.event

Class HierarchyEvent

所有已实现的接口:
Serializable

public class HierarchyEvent extends AWTEvent
表示Component所属的Component层次结构发生变化的事件。
  • 层次变化事件(HierarchyListener)
    • 添加祖先
    • 移除祖先
    • 层次结构变为可显示
    • 层次结构变为不可显示
    • 层次结构在屏幕上显示(可见和可显示)
    • 层次结构在屏幕上隐藏(不可见或不可显示)
  • 祖先重塑事件(HierarchyBoundsListener)
    • 祖先被调整大小
    • 祖先被移动

层次事件仅用于通知目的。 AWT将自动处理层次结构的变化,以确保GUI布局和可显示性正常工作,无论程序是否接收这些事件。

当容器对象(如Panel)添加、移除、移动或调整大小时,将生成此事件,并传递到层次结构中。当调用对象的addNotifyremoveNotifyshowhide方法时,也会生成此事件。将ANCESTOR_MOVEDANCESTOR_RESIZED事件分派给每个使用组件的addHierarchyBoundsListener方法注册接收此类事件的HierarchyBoundsListenerHierarchyBoundsAdapter对象。(HierarchyBoundsAdapter对象实现HierarchyBoundsListener接口。)将HIERARCHY_CHANGED事件分派给每个使用组件的addHierarchyListener方法注册接收此类事件的HierarchyListener对象。每个此类监听器对象在事件发生时都会收到此HierarchyEvent

如果任何特定HierarchyEvent实例的id参数不在HIERARCHY_FIRSTHIERARCHY_LAST范围内,将导致未指定的行为。
任何HierarchyEvent实例的changeFlags参数将取以下值之一:

  • HierarchyEvent.PARENT_CHANGED
  • HierarchyEvent.DISPLAYABILITY_CHANGED
  • HierarchyEvent.SHOWING_CHANGED
分配不同于上述列出的值将导致未指定的行为。
自:
1.3
另请参阅:
  • Field Details

    • 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
      表示祖先容器已移动的事件id。
      另请参阅:
    • ANCESTOR_RESIZED

      public static final int ANCESTOR_RESIZED
      表示祖先容器已调整大小的事件id。
      另请参阅:
    • HIERARCHY_LAST

      public static final int HIERARCHY_LAST
      标记祖先事件id范围的最后一个整数id。
      另请参阅:
    • PARENT_CHANGED

      public static final int PARENT_CHANGED
      一个变化标志,表示HIERARCHY_CHANGED事件是由重新父级操作生成的。
      另请参阅:
    • DISPLAYABILITY_CHANGED

      public static final int DISPLAYABILITY_CHANGED
      一个变化标志,表示HIERARCHY_CHANGED事件是由于层次结构可显示性的改变而生成的。要区分层次结构的当前可显示性,调用Component.isDisplayable方法。显示性更改是响应于显式或隐式调用Component.addNotifyComponent.removeNotify方法而发生的。
      另请参阅:
    • SHOWING_CHANGED

      public static final int SHOWING_CHANGED
      一个变化标志,表示HIERARCHY_CHANGED事件是由于层次结构显示状态的改变而生成的。要区分层次结构的当前显示状态,调用Component.isShowing方法。显示状态更改是在层次结构的显示性或可见性发生变化时发生的。可见性更改是响应于显式或隐式调用Component.showComponent.hide方法而发生的。
      另请参阅:
  • Constructor Details

    • HierarchyEvent

      public HierarchyEvent(Component source, int id, Component changed, Container changedParent)
      构造一个HierarchyEvent对象,用于标识Component层次结构中的变化。

      如果sourcenull,此方法将抛出IllegalArgumentException

      参数:
      source - 产生事件的Component对象
      id - 指示事件类型的整数。有关允许值的信息,请参阅HierarchyEvent的类描述
      changed - 发生变化的层次结构顶部的Component
      changedParent - changed组件的父级。这可能是更改前或更改后的父级,具体取决于更改的类型
      抛出:
      IllegalArgumentException - 如果sourcenull
      另请参阅:
    • HierarchyEvent

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

      如果sourcenull,此方法将抛出IllegalArgumentException

      参数:
      source - 触发事件的Component对象
      id - 表示事件类型的整数。有关允许值的信息,请参阅HierarchyEvent的类描述
      changed - 发生变化的层次结构顶部的Component
      changedParent - changed组件的父级。这可能是变化前或变化后的父级,取决于变化的类型
      changeFlags - 表示此事件对象中所代表的HIERARCHY_CHANGED事件类型的位掩码。有关允许值的信息,请参阅HierarchyEvent的类描述
      抛出:
      IllegalArgumentException - 如果source为null
      参见:
  • Method Details

    • getComponent

      public Component getComponent()
      返回事件的发起者。
      返回:
      触发事件的Component对象,如果对象不是Component则返回null
    • getChanged

      public Component getChanged()
      返回发生变化的层次结构顶部的组件。
      返回:
      发生变化的组件
    • getChangedParent

      public Container getChangedParent()
      返回getChanged()返回的组件的父级。对于通过调用Container.add进行的PARENT_CHANGED类型的HIERARCHY_CHANGED事件,返回的父级是添加操作后的父级。对于通过调用Container.remove进行的PARENT_CHANGED类型的HIERARCHY_CHANGED事件,返回的父级是移除操作前的父级。对于所有其他事件和类型,返回的父级是操作期间的父级。
      返回:
      发生变化的组件的父级
    • getChangeFlags

      public long getChangeFlags()
      返回一个位掩码,指示此事件对象中所代表的HIERARCHY_CHANGED事件类型。位已进行按位或操作。
      返回:
      位掩码,如果这不是HIERARCHY_CHANGED事件则返回0
    • paramString

      public String paramString()
      返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。
      覆盖:
      paramString 在类 AWTEvent
      返回:
      标识事件及其属性的字符串