模块  java.desktop
软件包  java.awt.event

Class HierarchyEvent

  • 实现的所有接口
    Serializable

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

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

    在添加,删除,移动或调整Container以及向下传递层次结构时,Container事件(如Panel)会生成此事件。 它也通过一个组件对象生成时该对象的addNotifyremoveNotifyshow ,或hide被调用的方法。 ANCESTOR_MOVEDANCESTOR_RESIZED事件将分派到每个HierarchyBoundsListenerHierarchyBoundsAdapter对象,该对象使用组件的addHierarchyBoundsListener方法注册接收此类事件。 HierarchyBoundsAdapter对象实现了HierarchyBoundsListener接口。) HIERARCHY_CHANGED事件被分派到每个HierarchyListener对象,该对象使用Component的addHierarchyListener方法注册接收此类事件。 事件发生时,每个此类侦听器对象都会获得此HierarchyEvent

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

    • HierarchyEvent.PARENT_CHANGED
    • HierarchyEvent.DISPLAYABILITY_CHANGED
    • HierarchyEvent.SHOWING_CHANGED
    分配与上面列出的值不同的值将导致未指定的行为。
    从以下版本开始:
    1.3
    另请参见:
    HierarchyListenerHierarchyBoundsAdapterHierarchyBoundsListenerSerialized Form
    • 字段详细信息

      • 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
        指示ancestor-Container的事件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方法的显式或隐式调用时。
        另请参见:
        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层次结构中的更改。

        此方法抛出IllegalArgumentException如果sourcenull

        参数
        source - 发起事件的 Component对象
        id - 指示事件类型的整数。 有关允许值的信息,请参阅HierarchyEvent的类说明
        changed - 已更改的层次结构顶部的 Component
        changedParent - changed组件的父changed 这可能是更改之前或之后的父级,具体取决于更改的类型
        异常
        IllegalArgumentException - 如果 sourcenull
        另请参见:
        EventObject.getSource()AWTEvent.getID()getChanged()getChangedParent()
      • HierarchyEvent

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

        此方法抛出IllegalArgumentException如果sourcenull

        参数
        source - 发起事件的 Component对象
        id - 指示事件类型的整数。 有关允许值的信息,请参阅HierarchyEvent的类说明
        changed - 已更改的层次结构顶部的 Component
        changedParent - changed组件的父changed 这可能是更改之前或之后的父级,具体取决于更改的类型
        changeFlags - 位掩码,指示此事件对象中表示的HIERARCHY_CHANGED事件的类型。 有关允许值的信息,请参阅HierarchyEvent的类说明
        异常
        IllegalArgumentException - 如果 source为空
        另请参见:
        EventObject.getSource()AWTEvent.getID()getChanged()getChangedParent()getChangeFlags()
    • 方法详细信息

      • getComponent

        public Component getComponent()
        返回事件的发起者。
        结果
        所述 Component对象发起事件,或 null如果对象不是 Component
      • getChanged

        public Component getChanged()
        返回已更改的层次结构顶部的Component。
        结果
        更改的组件
      • getChangedParent

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

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

        public String paramString()
        返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。
        重写:
        paramString在类 AWTEvent
        结果
        a string identifying the event and its attributes