javax.swing.event

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

public class TreeModelEvent
     
extends EventObject

封装描述树模型更改的信息,并用于通知侦听更改的树模型侦听器。有关更多的信息和示例,请参阅 The Java Tutorial 中的 How to Write a Tree Model Listener 一节。

警告:此类的序列化对象将与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder


字段摘要
protected  int[] childIndices
          标识子节点所在位置的索引。
protected  Object[] children
          已被移除的子节点。
protected  TreePath path
          到达已更改节点的父节点的路径。
 
从类 java.util.EventObject 继承的字段
source
 
构造方法摘要
TreeModelEvent(Object source, Object[] path)
          用来在节点结构以某种方法发生更改时创建一个事件,将到达已修改子树的根的路径标识为一个 Object 数组。
TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
          用来在节点已更改、插入或移除时创建一个事件,将到达已修改项的父级的路径标识为一个 Object 数组。
TreeModelEvent(Object source, TreePath path)
          用来在节点结构以某种方法发生更改时创建一个事件,将到达已修改子树的根的路径标识为一个 TreePath 对象。
TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
          用来在节点已更改、插入或移除时创建一个事件,将到达已修改项的父级的路径标识为一个 TreePath 对象。
 
方法摘要
 int[] getChildIndices()
          返回子索引的值。
 Object[] getChildren()
          返回位于 getChildIndices 指定位置处的、作为 getPath 所标识节点的子节点的对象。
 Object[] getPath()
          从此事件包装的 TreePath 实例中获得对象数组的便捷方法。
 TreePath getTreePath()
          对于除 treeStructureChanged 以外的所有事件,返回已更改节点的父节点。
 String toString()
          返回显示和标识此对象属性的字符串。
 
从类 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)
用来在节点已更改、插入或移除时创建一个事件,将到达已修改项的父级的路径标识为一个 Object 数组。所有修改的对象都是同级的,它们是指定父对象的直接后代(不是孙级)。发生插入、删除或更改操作的位置由一个 int 数组指定。该数组中的索引必须是有序的,从最低到最高。

对于更改操作,模型中的索引完全对应于当前显示在 UI 中的项的索引。因此,如果索引没有按其正确的顺序排列实际上也没有多大关系。但在多次执行插入或删除操作以后,UI 中当前存在的项不再对应于模型中的项。因此,为插入和删除操作正确地指定索引很关键。

对于插入操作,在执行插入操作之后,索引表示树的最终 状态。因为必须按顺序指定索引,所以最自然的处理方法是从最低索引处开始执行插入操作,向最高索引处移动。在此过程中累计指定插入位置的 Integer 对象的 Vector,然后将该 Vector 转换成一个 int 数组,以创建事件。当位置索引等于零时,在列表的开始处插入节点。当位置索引等于列表的大小时,在列表的结尾处“插入”(追加)节点。

对于删除操作,在执行删除操作之前,索引表示树的最初 状态。因为必须按顺序指定索引,所以最自然的处理方法是使用一个删除计数器 (delete-counter)。先将计数器初始化为零,然后从最低索引到最高索引对列表进行初始化。每执行一次删除操作,就将删除计数器的当前值添加到执行删除的索引位置,然后使用 addElement() 将所得的结果追加到删除位置的 Vector 中。然后将删除计数器加 1。所以存储在 Vector 中的索引位置可以反映所有以前的删除操作的效果,因此它们表示初始树中每个对象的位置。(还可以从最高索引开始,反向运行到最低索引,并在此过程中使用 insertElementAt(Integer, 0) 累计删除位置的 Vector。)不过,先要生成初始位置的 Vector,然后将 Integer 对象的 Vector 转换成一个 int 数组,以创建事件。

注:

  • DefaultTreeModel类中的 insertNodeInto 方法类似,insertElementAt 在索引与向量的大小匹配时追加 Vector。所以即使在向量为空时也可以使用 insertElementAt(Integer, 0)
      要为根节点创建一个节点更改事件,则需要将父索引和子索引都指定为 null

    参数:
    source - 对生成该事件负责的 Object(事件对象的创建者通常传递 this 作为其值)
    path - 指定到达已修改项父级的路径的 Object 数组,该数组的第一个元素是存储在根节点上的 Object,最后一个元素是存储在父节点上的 Object
    childIndices - 指定已移除项的索引值的 int 数组。索引必须按存储顺序排列,从最低索引到最高索引
    children - 包含已插入、移除或更改对象的 Object 数组
    另请参见:
    TreePath

TreeModelEvent

public TreeModelEvent(Object source,
                      TreePath path,
                      int[] childIndices,
                      Object[] children)
用来在节点已更改、插入或移除时创建一个事件,将到达已修改项的父级的路径标识为一个 TreePath 对象。有关如何指定索引和对象的更多信息,请参见 TreeModelEvent(Object,Object[],int[],Object[])

参数:
source - 对生成该事件负责的 Object(事件对象的创建者通常传递 this 作为其值)
path - 标识到达已修改项父级的路径的 TreePath 对象
childIndices - 指定已修改项的索引值的 int 数组
children - 包含已插入、移除或更改对象的 Object 数组
另请参见:
TreeModelEvent(Object,Object[],int[],Object[])

TreeModelEvent

public TreeModelEvent(Object source,
                      Object[] path)
用来在节点结构以某种方法发生更改时创建一个事件,将到达已修改子树的根的路径标识为一个 Object 数组。例如,结构更改事件可能涉及节点交换位置,或者它可以在源于该节点的子树中封装多个插入和删除操作,在该子树中,更改可以发生在子树的不同级别上。
注:
JTree 折叠指定节点下的所有节点,因此只有该节点的直接子节点可见。

参数:
source - 对生成该事件负责的 Object(事件对象的创建者通常传递 this 作为其值)
path - 指定到达已修改子树的根的路径的 Object 数组,该数组的第一个元素是存储在根节点上的对象,最后一个元素是存储在已更改节点上的对象
另请参见:
TreePath

TreeModelEvent

public TreeModelEvent(Object source,
                      TreePath path)
用来在节点结构以某种方法发生更改时创建一个事件,将到达已修改子树的根的路径标识为一个 TreePath 对象。有关此事件规范的更多信息,请参见 TreeModelEvent(Object,Object[])

参数:
source - 对生成该事件负责的 Object(事件对象的创建者通常传递 this 作为其值)
path - 标识到达更改的路径的 TreePath 对象。在 DefaultTreeModel 中,此对象包含一个用户数据对象数组,但 TreePath 的子类可以使用完全不同的一些机制,例如,一个节点 ID 编号
另请参见:
TreeModelEvent(Object,Object[])
方法详细信息

getTreePath

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

惟一的例外是一个将标识根的 treeNodesChanged 事件,在这种情况下,此方法将返回此根,而 getChildIndices 将返回 null。

返回:
用于标识已更改节点的 TreePath。
另请参见:
TreePath.getLastPathComponent()

getPath

public Object[] getPath()
从此事件包装的 TreePath 实例中获得对象数组的便捷方法。

返回:
Object 数组,其中第一个 Object 是存储在根节点上的对象,最后一个对象是存储在由该路径标识的节点上的对象

getChildren

public Object[] getChildren()
返回位于 getChildIndices 指定位置处的、作为 getPath 所标识节点的子节点的对象。如果这是一个移除事件,则返回的对象不再是父节点的子节点。

返回:
包含由事件指定的子节点的 Object 数组
另请参见:
getPath(), getChildIndices()

getChildIndices

public int[] getChildIndices()
返回子索引的值。如果这是一个移除事件,则索引指向已移除项所在的初始列表中的位置。如果这是一个插入事件,则索引指向添加项所在的初始列表中的位置。对于节点更改,索引指向已修改节点的位置。

返回:
包含该事件指定的子索引位置的 int 数组

toString

public String toString()
返回显示和标识此对象属性的字符串。

覆盖:
EventObject 中的 toString
返回:
此对象的字符串表示形式