Module java.desktop

Class TreeModelEvent

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

public class TreeModelEvent extends EventObject
封装描述树模型更改的信息,并用于通知树模型侦听器更改的情况。有关更多信息和示例,请参阅如何编写树模型侦听器,这是《Java教程》中的一节。

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

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int[]
    标识子项位置的索引。
    protected Object[]
    已删除的子项。
    protected TreePath
    已更改节点的父节点路径。

    Fields declared in class java.util.EventObject

    source
  • Constructor Summary

    Constructors
    Constructor
    Description
    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对象。
  • Method Summary

    Modifier and Type
    Method
    Description
    int[]
    返回子项索引的值。
    Object[]
    返回由getPath标识的节点的子项对象,位置由getChildIndices指定。
    Object[]
    从此事件包装的TreePath实例中获取对象数组的便捷方法。
    对于所有事件,除了treeStructureChanged,返回更改节点的父节点。
    返回显示和标识此对象属性的字符串。

    Methods declared in class java.util.EventObject

    getSource

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • path

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

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

      protected Object[] children
      已删除的子项。
  • Constructor Details

    • TreeModelEvent

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

      对于更改,模型中的索引与当前在UI中显示的项目的索引完全对应。因此,如果索引不按确切顺序排列,实际上并不重要。但是,在多次插入或删除之后,UI中当前显示的项目不再对应模型中的项目。因此,对于插入和删除,正确指定索引非常重要。

      对于插入,索引表示树的最终状态,在插入发生后的状态。由于索引必须按顺序指定,最自然的处理方法是从最低索引开始插入,然后向最高索引工作。随着插入的进行,累积一个指定插入位置的Integer对象的Vector,然后将Vector转换为int数组以创建事件。当位置索引等于零时,节点插入到列表的开头。当位置索引等于列表的大小时,节点“插入”到列表的末尾(附加到列表)。

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

      注意:

      • DefaultTreeModel类中的insertNodeInto方法一样,当索引与向量的大小匹配时,insertElementAt将附加到Vector。因此,即使向量为空,也可以使用insertElementAt(Integer, 0)
      • 要为根节点创建节点更改事件,请将父节点和子索引指定为null
      参数:
      source - 生成事件的对象(通常是事件对象的创建者将this作为其值传递)
      path - 一个对象数组,标识已更改项的父节点路径,数组的第一个元素是存储在根节点处的对象,最后一个元素是存储在父节点处的对象
      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编号
      参见:
  • Method Details

    • getTreePath

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

      唯一的例外是用于标识根节点的treeNodesChanged事件,在这种情况下,此方法将返回根节点,getChildIndices将返回null。

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

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

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

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

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