|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.event
类 TreeModelEvent
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 是存储在根节点上的对象,最后一个对象是存储在由该路径标识的节点上的对象