- java.lang.Object
-
- java.util.EventObject
-
- javax.swing.event.TreeModelEvent
-
- All Implemented Interfaces:
-
Serializable
public class TreeModelEvent extends EventObject
将描述更改的信息封装到树模型,并用于通知树型模型侦听器的更改。 有关更多信息和示例,请参阅“Java教程”中的“ How to Write a Tree Model Listener ”一节。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持长期存储所有JavaBeans的“¢”已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 protected int[]
childIndices
确定孩子的位置的指标。protected Object[]
children
被删除的孩子protected TreePath
path
到已更改节点的父节点的路径。-
Fields inherited from class java.util.EventObject
source
-
-
构造方法摘要
构造方法 Constructor 描述 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对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 int[]
getChildIndices()
返回子索引的值。Object[]
getChildren()
返回由标识节点的子对象getPath
在由指定的位置getChildIndices
。Object[]
getPath()
从事件包装的TreePath实例获取对象数组的便利方法。TreePath
getTreePath()
对于所有事件,除了treeStructureChanged,返回已更改节点的父节点。String
toString()
返回显示和标识此对象属性的字符串。-
Methods inherited from class java.util.EventObject
getSource
-
-
-
-
构造方法详细信息
-
TreeModelEvent
public TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
用于在更改,插入或删除节点时创建事件,将修改后的项目的父项路径标识为对象数组。 所有修改的对象都是兄弟,它们是指定父对象的直接后代(而不是孙子)。 插入,删除或更改发生的位置由int
的数组指定。 该数组中的索引必须按顺序排列,从最低到最高。对于更改,模型中的索引完全对应于UI中当前显示的项目的索引。 因此,如果索引不是按照它们的顺序,那么这并不重要。 但是,在多次插入或删除后,UI中的项目不再对应于模型中的项目。 因此,必须正确指定索引的插入和删除。
对于插入,索引表示在插入发生后树的最终状态。 由于索引必须按顺序指定,因此最自然的处理方法是从最低索引开始进行插入,并以最高的方式工作。 累积一个
Integer
对象,指定插入位置,然后将Vector转换为int
的数组以创建事件。 当postition-index等于零时,节点将被插入列表的开头。 当位置索引等于列表的大小时,节点在列表的末尾(附加到)处被“插入”。对于删除,索引代表树的初始状态,在删除发生之前。 由于索引必须按顺序指定,最自然的处理方法是使用删除计数器。 首先将计数器初始化为零,然后通过列表从最低到最高开始工作。 每次执行删除时,将删除计数器的当前值添加到发生删除的索引位置,并使用
addElement()
将结果附加到一个向量的删除位置。 然后增加删除计数器。 因此,存储在向量中的索引位置反映了所有先前删除的效果,因此它们表示每个对象在初始树中的位置。 (你也可以从最高的索引开始,并返回到最低的位置,在使用insertElementAt(Integer, 0)
使用insertElementAt(Integer, 0)
累积一个删除位置的insertElementAt(Integer, 0)
。)然而,您生成了初始位置的向量,然后需要转换Integer
的向量对象到一个int
的数组来创建事件。笔记:
- 像
DefaultTreeModel
类中的insertNodeInto
方法一样,insertElementAt
附加到Vector
时,索引与向量的大小匹配。 所以即使向量为空也可以使用insertElementAt(Integer, 0)
。 - 要为根节点创建节点更改事件,请指定父项和子索引为
null
。
- 参数
-
source
- 负责生成事件的对象(通常事件对象的创建者通过其值为this
) -
path
- 一个Object数组,用于标识修改后的项目的父项的路径,其中数组的第一个元素是存储在根节点的对象,最后一个元素是存储在父节点的对象 -
childIndices
-的阵列int
指定删除的项目的索引值。 索引必须按照排序顺序,从最低到最高 -
children
- 包含插入,删除或更改对象的Object数组 - 另请参见:
-
TreePath
- 像
-
TreeModelEvent
public TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
用于在更改,插入或删除节点时创建事件,将修改后的项目的父项路径标识为TreePath对象。 有关如何指定索引和对象的更多信息,请参阅TreeModelEvent(Object,Object[],int[],Object[])
。- 参数
-
source
- 负责生成事件的对象(通常事件对象的创建者通过其值为this
) -
path
- 一个TreePath对象,用于标识修改后的项目的父项的路径 -
childIndices
-的阵列int
指定修改的项目的索引值 -
children
- 包含插入,删除或更改对象的Object数组 - 另请参见:
-
TreeModelEvent(Object,Object[],int[],Object[])
-
TreeModelEvent
public TreeModelEvent(Object source, Object[] path)
用于在节点结构以某种方式更改时创建事件,将修改后的子树的根目录的路径标识为对象数组。 结构改变事件可能涉及节点交换位置,例如,或者它可能封装来自节点的子树中的多个插入和删除,其中可能发生在子树的不同级别的变化。Note:
JTree collapses all nodes under the specified node, so that only its immediate children are visible.- 参数
-
source
- 负责生成事件的对象(通常事件对象的创建者通过其值为this
) -
path
- 一个Object数组,用于标识修改后的子树根的路径,其中数组的第一个元素是存储在根节点的对象,最后一个元素是存储在更改后的节点上的对象 - 另请参见:
-
TreePath
-
TreeModelEvent
public TreeModelEvent(Object source, TreePath path)
用于在节点结构以某种方式更改时创建事件,将修改后的子树的根路径标识为TreePath对象。 有关此事件规范的更多信息,请参阅TreeModelEvent(Object,Object[])
。- 参数
-
source
- 负责生成事件的对象(通常事件对象的创建者通过其值为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是存储在根中的对象,最后一个对象是存储在由路径标识的节点上的对象
-
getChildren
public Object[] getChildren()
返回由标识节点的子对象getPath
在由指定的位置getChildIndices
。 如果这是一个删除事件,返回的对象不再是父节点的子节点。- 结果
- 包含事件指定的子对象的Object数组
- 另请参见:
-
getPath()
,getChildIndices()
-
getChildIndices
public int[] getChildIndices()
返回子索引的值。 如果这是一个删除事件,索引指向删除项目的初始列表中的位置。 如果是插入,则索引指向最终列表中添加项目的位置。 对于节点更改,索引指向修改节点的位置。- 结果
-
一个
int
的数组,包含事件指定的子int
的索引位置
-
toString
public String toString()
返回显示和标识此对象属性的字符串。- 重写:
-
toString
在EventObject
- 结果
- 该对象的字符串表示形式
-
-