模块 java.desktop

类 TreeModelEvent

java.lang.Object
java.util.EventObject
javax.swing.event.TreeModelEvent
所有已实现的接口:
Serializable

public class TreeModelEvent extends EventObject
封装描述树模型更改的信息,并用于将更改通知树模型监听器。有关更多信息和示例,请参阅 如何编写树模型监听器The Java Tutorial. 中的一个部分

Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder

  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    protected int[]
    标识子级所在位置的索引。
    protected Object[]
    已被删除的子项。
    protected TreePath
    已更改节点的父节点的路径。

    在类 java.util.EventObject 中声明的字段

    source
  • 构造方法总结

    构造方法
    构造方法
    描述
    TreeModelEvent(Object source, Object[] path)
    用于在节点结构以某种方式发生变化时创建事件,将修改后的子树的根路径标识为对象数组。
    TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
    用于在更改、插入或删除节点时创建事件,将修改项的父级路径标识为对象数组。
    TreeModelEvent(Object source, TreePath path)
    用于在节点结构以某种方式发生变化时创建事件,将修改后的子树的根路径标识为 TreePath 对象。
    TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
    用于在更改、插入或删除节点时创建事件,将修改项的父项的路径标识为 TreePath 对象。
  • 方法总结

    修饰符和类型
    方法
    描述
    int[]
    返回子索引的值。
    getChildIndices 指定的位置返回由 getPath 标识的节点的子节点的对象。
    从此事件包装的 TreePath 实例中获取对象数组的便捷方法。
    对于除 treeStructureChanged 之外的所有事件,返回已更改节点的父级。
    返回显示和标识此对象属性的字符串。

    在类 java.util.EventObject 中声明的方法

    getSource

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 字段详细信息

    • path

      protected TreePath  path
      已更改节点的父节点的路径。
    • childIndices

      protected int[] childIndices
      标识子级所在位置的索引。
    • children

      protected Object [] children
      已被删除的子项。
  • 构造方法详细信息

    • TreeModelEvent

      public TreeModelEvent(Object  source, Object [] path, int[] childIndices, Object [] children)
      用于在更改、插入或删除节点时创建事件,将修改项的父级路径标识为对象数组。所有被修改的对象都是兄弟姐妹,它们是指定父对象的直系后代(不是孙子)。发生插入、删除或更改的位置由 int 数组指定。该数组中的索引必须按从低到高的顺序排列。

      对于更改,模型中的索引与当前显示在 UI 中的项目的索引完全对应。因此,如果索引没有按照它们的确切顺序排列,这并不是真正重要的。但是多次插入或删除后,当前UI中的item不再对应于model中的item。因此,为插入和删除正确指定索引至关重要。

      对于插入,索引代表final插入发生后树的状态。由于必须按顺序指定索引,因此最自然的处理方法是从最低索引开始并向最高索引努力。累积指定插入位置的 Integer 对象的 Vector,然后将 Vector 转换为 int 的数组以创建事件。当 postition-index 为零时,节点被插入到列表的开头。当位置索引等于列表的大小时,节点将“插入”(附加到)列表的末尾。

      对于删除,索引代表最初的树的状态,在删除发生之前。由于必须按顺序指定索引,因此最自然的处理方法是使用删除计数器。首先将计数器初始化为零,然后从最低到最高开始处理列表。每次执行删除时,将删除计数器的当前值添加到发生删除的索引位置,然后使用 addElement() 将结果附加到删除位置的 Vector 中。然后增加删除计数器。因此,存储在 Vector 中的索引位置反映了所有先前删除的效果,因此它们代表了每个对象在初始树中的位置。 (您也可以从最高索引开始,然后返回到最低索引,在使用 insertElementAt(Integer, 0) 时累积删除位置的向量。)无论您生成初始位置的向量,然后需要转换 Integer 的向量对象到 int 数组以创建事件。

      笔记:

      • DefaultTreeModel 类中的 insertNodeInto 方法一样,当索引与向量的大小匹配时,insertElementAt 附加到 Vector。因此,即使向量为空,您也可以使用 insertElementAt(Integer, 0)
      • 要为根节点创建节点更改事件,请将父索引和子索引指定为 null
      参数:
      source - 负责生成事件的对象(通常事件对象的创建者将其值传递给 this
      path - 一个 Object 数组,标识到已修改项的父级的路径,其中数组的第一个元素是存储在根节点的 Object,最后一个元素是存储在父节点的 Object
      childIndices - 一个 int 数组,指定已删除项目的索引值。索引必须按从低到高的顺序排序
      children - 包含插入、删除或更改对象的对象数组
      参见:
    • TreeModelEvent

      public TreeModelEvent(Object  source, TreePath  path, int[] childIndices, Object [] children)
      用于在更改、插入或删除节点时创建事件,将修改项的父项的路径标识为 TreePath 对象。有关如何指定索引和对象的更多信息,请参阅 TreeModelEvent(Object,Object[],int[],Object[])
      参数:
      source - 负责生成事件的对象(通常事件对象的创建者将其值传递给 this
      path - 一个 TreePath 对象,它标识到已修改项的父项的路径
      childIndices - 一个 int 数组,指定修改项的索引值
      children - 包含插入、删除或更改对象的对象数组
      参见:
    • TreeModelEvent

      public TreeModelEvent(Object  source, Object [] path)
      用于在节点结构以某种方式发生变化时创建事件,将修改后的子树的根路径标识为对象数组。例如,结构更改事件可能涉及节点交换位置,或者它可能在源自该节点的子树中封装多个插入和删除,其中更改可能发生在子树的不同级别。
      笔记:
      JTree 折叠指定节点下的所有节点,以便只有它的直接子节点可见。
      参数:
      source - 负责生成事件的对象(通常事件对象的创建者将其值传递给 this
      path - 一个对象数组,标识修改后的子树的根路径,其中数组的第一个元素是存储在根节点的对象,最后一个元素是存储在更改节点的对象
      参见:
    • TreeModelEvent

      public TreeModelEvent(Object  source, TreePath  path)
      用于在节点结构以某种方式发生变化时创建事件,将修改后的子树的根路径标识为 TreePath 对象。有关此事件规范的更多信息,请参阅 TreeModelEvent(Object,Object[])
      参数:
      source - 负责生成事件的对象(通常事件对象的创建者将其值传递给 this
      path - 标识更改路径的 TreePath 对象。在 DefaultTreeModel 中,此对象包含一个用户数据对象数组,但 TreePath 的子类可以使用一些完全不同的机制——例如,节点 ID 号
      参见:
  • 方法详情

    • getTreePath

      public TreePath  getTreePath()
      对于除 treeStructureChanged 之外的所有事件,返回已更改节点的父级。对于 treeStructureChanged 事件,返回已更改结构的祖先。这和 getChildIndices 用于获取受影响节点的列表。

      一个例外是用于标识根的 treeNodesChanged 事件,在这种情况下,这将返回根,getChildIndices 将返回 null。

      返回:
      用于标识已更改节点的 TreePath。
      参见:
    • getPath

      public Object [] getPath()
      从此事件包装的 TreePath 实例中获取对象数组的便捷方法。
      返回:
      对象数组,其中第一个对象是存储在根中的对象,最后一个对象是存储在路径标识的节点中的对象
    • getChildren

      public Object [] getChildren()
      getChildIndices 指定的位置返回由 getPath 标识的节点的子节点的对象。如果这是一个删除事件,则返回的对象不再是父节点的子节点。
      返回:
      包含事件指定的子项的 Object 数组
      参见:
    • getChildIndices

      public int[] getChildIndices()
      返回子索引的值。如果这是删除事件,则索引指向初始列表中项目被删除的位置。如果是插入,则索引指向最终列表中添加项目的位置。对于节点更改,索引指向已修改节点的位置。
      返回:
      包含事件指定的子项的索引位置的 int 数组
    • toString

      public String  toString()
      返回显示和标识此对象属性的字符串。
      重写:
      toString 在类 EventObject
      返回:
      此对象的字符串表示形式