Module  java.desktop
软件包  java.awt.event

Class HierarchyEvent

  • All Implemented Interfaces:
    Serializable


    public class HierarchyEvent
    extends AWTEvent
    表示Component属于Component层次结构的更改的事件。
    • 层次结构更改事件(HierarchyListener)
      • 加上祖先
      • 去除祖先
      • 层次结构可显示
      • 层次结构不可显示
      • 屏幕上显示的层次结构(可见和可显示)
      • 屏幕上隐藏的层次结构(不可见或不可显示)
    • 祖先重塑事件(HierarchyBoundsListener)
      • 祖先被调整大小
      • 祖先被移动了

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

    当容器被添加,删除,移动或调整大小并传递给层次结构时,此事件由Container对象(例如Panel)生成。 它也通过一个组件对象生成时该对象的addNotifyremoveNotifyshow ,或hide被调用的方法。 ANCESTOR_MOVEDANCESTOR_RESIZED事件发送到使用组件的addHierarchyBoundsListener方法注册接收此类事件的每个HierarchyBoundsListenerHierarchyBoundsAdapter对象。 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
    另请参见:
    HierarchyListenerHierarchyBoundsAdapterHierarchyBoundsListenerSerialized Form
    • 字段详细信息

      • HIERARCHY_FIRST

        public static final int HIERARCHY_FIRST
        标记层次结构事件ID范围的第一个整数ID。
        另请参见:
        Constant Field Values
      • HIERARCHY_CHANGED

        public static final int HIERARCHY_CHANGED
        事件id表示对整个层次结构树进行了修改。
        另请参见:
        Constant Field Values
      • ANCESTOR_MOVED

        public static final int ANCESTOR_MOVED
        指示一个祖先的容器ID被移动了。
        另请参见:
        Constant Field Values
      • ANCESTOR_RESIZED

        public static final int ANCESTOR_RESIZED
        指示祖先的事件ID容器被调整大小。
        另请参见:
        Constant Field Values
      • HIERARCHY_LAST

        public static final int HIERARCHY_LAST
        标记祖先事件ID的范围的最后一个整数ID。
        另请参见:
        Constant Field Values
      • PARENT_CHANGED

        public static final int PARENT_CHANGED
        更改标志表示 HIERARCHY_CHANGED事件是由重新启动操作生成的。
        另请参见:
        Constant Field Values
      • DISPLAYABILITY_CHANGED

        public static final int DISPLAYABILITY_CHANGED
        更改标志表示HIERARCHY_CHANGED事件是由于层次可显示性的改变而生成的。 要辨别层次结构的当前可显示性,请调用Component.isDisplayable方法。 显示更改发生在对Component.addNotifyComponent.removeNotify方法的显式或隐式调用的响应中。
        另请参见:
        Component.isDisplayable()Component.addNotify()Component.removeNotify()Constant Field Values
    • 构造方法详细信息

      • 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​()
        返回已更改的层次结构顶部的组件。
        结果
        更改的组件
      • getChangedParent

        public Container getChangedParent​()
        返回由getChanged()返回的组件的父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​()
        返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。
        重写:
        paramStringAWTEvent
        结果
        a string identifying the event and its attributes