模块 java.desktop

类 HierarchyEvent

所有已实现的接口:
Serializable

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

层次结构事件仅用于通知目的。 AWT 将自动处理内部层次结构的更改,以便 GUI 布局和可显示性正常工作,而不管程序是否正在接收这些事件。

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

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

  • HierarchyEvent.PARENT_CHANGED
  • HierarchyEvent.DISPLAYABILITY_CHANGED
  • HierarchyEvent.SHOWING_CHANGED
分配与上面列出的不同的值将导致未指定的行为。
自从:
1.3
参见:
  • 字段详细信息

    • 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 方法的显式或隐式调用的响应中。
      参见:
  • 构造方法详细信息

    • 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 为空
      参见:
  • 方法详情

    • 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
      返回:
      标识事件及其属性的字符串