java.lang.Object java.util.EventObject javax.swing.event.TreeModelEvent
public class TreeModelEvent
封装描述树模型更改的信息,并用于通知侦听更改的树模型侦听器。有关更多的信息和示例,请参阅 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 |
字段详细信息 |
---|
protected TreePath path
protected int[] childIndices
protected Object[] children
构造方法详细信息 |
---|
public TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
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
public TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
TreeModelEvent(Object,Object[],int[],Object[])
。
source
- 对生成该事件负责的 Object(事件对象的创建者通常传递
this
作为其值)
path
- 标识到达已修改项父级的路径的 TreePath 对象
childIndices
- 指定已修改项的索引值的
int
数组
children
- 包含已插入、移除或更改对象的 Object 数组
TreeModelEvent(Object,Object[],int[],Object[])
public TreeModelEvent(Object source, Object[] path)
注:
JTree 折叠指定节点下的所有节点,因此只有该节点的直接子节点可见。
source
- 对生成该事件负责的 Object(事件对象的创建者通常传递
this
作为其值)
path
- 指定到达已修改子树的根的路径的 Object 数组,该数组的第一个元素是存储在根节点上的对象,最后一个元素是存储在已更改节点上的对象
TreePath
public TreeModelEvent(Object source, TreePath path)
TreeModelEvent(Object,Object[])
。
source
- 对生成该事件负责的 Object(事件对象的创建者通常传递
this
作为其值)
path
- 标识到达更改的路径的 TreePath 对象。在 DefaultTreeModel 中,此对象包含一个用户数据对象数组,但 TreePath 的子类可以使用完全不同的一些机制,例如,一个节点 ID 编号
TreeModelEvent(Object,Object[])
方法详细信息 |
---|
public TreePath getTreePath()
getChildIndices
来获得受影响节点的列表。
惟一的例外是一个将标识根的 treeNodesChanged 事件,在这种情况下,此方法将返回此根,而 getChildIndices
将返回 null。
TreePath.getLastPathComponent()
public Object[] getPath()
public Object[] getChildren()
getChildIndices
指定位置处的、作为
getPath
所标识节点的子节点的对象。如果这是一个移除事件,则返回的对象不再是父节点的子节点。
getPath()
,
getChildIndices()
public int[] getChildIndices()
int
数组
public String toString()
EventObject
中的
toString