java.lang.Object
javax.swing.tree.DefaultTreeModel
- 所有已实现的接口:
Serializable,TreeModel
使用 TreeNodes 的简单树数据模型。有关使用 DefaultTreeModel 的更多信息和示例,请参阅 The Java Tutorial. 中的 如何使用树木
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder 。
-
字段摘要
字段修饰符和类型Field描述protected boolean确定isLeaf方法如何确定节点是否为叶节点。protected EventListenerList听众。protected TreeNode树的根。 -
构造方法总结
构造方法构造方法描述DefaultTreeModel(TreeNode root) 创建一棵树,其中任何节点都可以有子节点。DefaultTreeModel(TreeNode root, boolean asksAllowsChildren) 创建一个树,指定是否任何节点都可以有子节点,或者是否只有某些节点可以有子节点。 -
方法总结
修饰符和类型方法描述void为树更改后发布的 TreeModelEvent 添加监听。boolean说明如何确定叶节点。protected voidfireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有已注册对此事件类型的通知感兴趣的监听。protected voidfireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有已注册对此事件类型的通知感兴趣的监听。protected voidfireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有已注册对此事件类型的通知感兴趣的监听。protected voidfireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有已注册对此事件类型的通知感兴趣的监听。返回的子级parent在指数指数在父级的子级数组中。intgetChildCount(Object parent) 返回的子级的数量parent.intgetIndexOfChild(Object parent, Object child) 返回父项中子项的索引。<T extends EventListener>
T[]getListeners(Class<T> listenerType) 返回当前在此模型上注册为FooListener的所有对象的数组。TreeNode[]getPathToRoot(TreeNode aNode) 构建节点的父节点,直至并包括根节点,其中原始节点是返回数组中的最后一个元素。protected TreeNode[]getPathToRoot(TreeNode aNode, int depth) 构建节点的父节点,直至并包括根节点,其中原始节点是返回数组中的最后一个元素。getRoot()返回树的根。返回在此模型上注册的所有树模型监听的数组。voidinsertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index) 调用它以在父级子级的位置索引处插入 newChild。boolean返回指定节点是否为叶节点。voidnodeChanged(TreeNode node) 在更改节点在树中的表示方式后调用此方法。voidnodesChanged(TreeNode node, int[] childIndices) 在更改了由 childIndicies 标识的子级在树中的表示方式后调用此方法。voidnodeStructureChanged(TreeNode node) 如果您完全更改了节点的子节点及其子节点的子节点,请调用此方法...voidnodesWereInserted(TreeNode node, int[] childIndices) 在将一些 TreeNodes 插入节点后调用此方法。voidnodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren) 从节点中删除一些 TreeNode 后调用此方法。voidreload()如果您修改了此模型所依赖的TreeNode,请调用此方法。void如果您修改了此模型所依赖的TreeNode,请调用此方法。void发送此消息以从其父节点中删除节点。void删除以前添加的监听addTreeModelListener().voidsetAsksAllowsChildren(boolean newValue) 设置是否通过向 TreeNodes 询问 getAllowsChildren() 或 isLeaf() 来测试叶度。void将根设置为root。voidvalueForPathChanged(TreePath path, Object newValue) 这将设置由路径标识的 TreeNode 的用户对象,并发布一个已更改的节点。
-
字段详细信息
-
root
树的根。 -
listenerList
听众。 -
asksAllowsChildren
protected boolean asksAllowsChildren确定isLeaf方法如何确定节点是否为叶节点。如果为真,则如果节点不允许子节点,则该节点为叶节点。 (如果它允许孩子,它就不是叶节点,即使没有孩子存在。)这让你区分文件夹节点和file例如,文件系统中的节点。如果此值为假,则任何没有子节点的节点都是叶节点,并且任何节点都可以获取子节点。
- 参见:
-
-
构造方法详细信息
-
DefaultTreeModel
创建一棵树,其中任何节点都可以有子节点。- 参数:
root- 作为树根的 TreeNode 对象- 参见:
-
DefaultTreeModel
创建一个树,指定是否任何节点都可以有子节点,或者是否只有某些节点可以有子节点。- 参数:
root- 作为树根的 TreeNode 对象asksAllowsChildren- boolean,如果任何节点都可以有子节点则为 false,如果要求每个节点查看它是否可以有子节点则为 true- 参见:
-
-
方法详情
-
setAsksAllowsChildren
public void setAsksAllowsChildren(boolean newValue) 设置是否通过向 TreeNodes 询问 getAllowsChildren() 或 isLeaf() 来测试叶度。如果 newvalue 为真,则向 getAllowsChildren() 发送消息,否则向 isLeaf() 发送消息。- 参数:
newValue- 如果为真,则向 getAllowsChildren() 发送消息,否则向 isLeaf() 发送消息
-
asksAllowsChildren
public boolean asksAllowsChildren()说明如何确定叶节点。- 返回:
- 如果只有不允许子节点的节点是叶节点,则为 true;如果没有子节点(即使允许)的节点是叶节点,则为 false
- 参见:
-
setRoot
将根设置为root。 nullroot表示该树不显示任何内容,并且是合法的。- 参数:
root- 树根的新值
-
getRoot
返回树的根。仅当树没有节点时才返回 null。 -
getIndexOfChild
返回父项中子项的索引。如果父母或孩子是null,则返回 -1。- 指定者:
getIndexOfChild在接口TreeModel中- 参数:
parent- 树中的注释,从此数据源获得child- 我们感兴趣的节点- 返回:
-
父项中子项的索引,如果父项或子项是
null,则为 -1
-
getChild
返回的子级parent在指数指数在父级的子级数组中。parent必须是先前从此数据源获得的节点。如果指数是一个有效索引parent(那是指数 >= 0 && 指数< getChildCount(parent)). -
getChildCount
返回的子级的数量parent.如果节点是叶节点或没有子节点,则返回 0。parent必须是先前从此数据源获得的节点。- 指定者:
getChildCount在接口TreeModel中- 参数:
parent- 树中的一个节点,从此数据源获得- 返回:
- 节点的子节点数parent
-
isLeaf
返回指定节点是否为叶节点。执行测试的方式取决于asksAllowsChildren设置。 -
reload
public void reload()如果您修改了此模型所依赖的TreeNode,请调用此方法。该模型将通知其所有监听器模型已更改。 -
valueForPathChanged
这将设置由路径标识的 TreeNode 的用户对象,并发布一个已更改的节点。如果您在 TreeModel 中使用自定义用户对象,您将需要对其进行子类化并将已更改节点的用户对象设置为有意义的内容。- 指定者:
valueForPathChanged在接口TreeModel中- 参数:
path- 用户更改的节点路径newValue- 来自 TreeCellEditor 的新值
-
insertNodeInto
调用它以在父级子级的位置索引处插入 newChild。然后这将消息 nodesWereInserted 以创建适当的事件。这是添加子项的首选方式,因为它将创建适当的事件。- 参数:
newChild- 要插入的子节点parent- 子节点将被添加到的节点index- 父母子女的索引
-
removeNodeFromParent
发送此消息以从其父节点中删除节点。这将消息 nodesWereRemoved 以创建适当的事件。这是移除节点的首选方式,因为它会为您处理事件创建。- 参数:
node- 要从其父节点中删除的节点
-
nodeChanged
在更改节点在树中的表示方式后调用此方法。- 参数:
node- 改变的节点
-
reload
如果您修改了此模型所依赖的TreeNode,请调用此方法。该模型将通知其所有监听器模型已在给定节点下更改。- 参数:
node- 模型已更改的节点
-
nodesWereInserted
在将一些 TreeNodes 插入节点后调用此方法。 childIndices 应该是新元素的索引,并且必须按升序排序。- 参数:
node- 子节点计数的父节点已递增childIndices- 插入的孩子的索引
-
nodesWereRemoved
从节点中删除一些 TreeNode 后调用此方法。 childIndices 应该是被移除元素的索引,并且必须按升序排序。而 removedChildren 应该是被移除的子对象的数组。- 参数:
node- 子节点被移除的父节点childIndices- 删除的孩子的索引removedChildren- 已删除的子对象数组
-
nodesChanged
在更改了由 childIndicies 标识的子级在树中的表示方式后调用此方法。- 参数:
node- 更改节点childIndices- 已更改子项的索引
-
nodeStructureChanged
如果您完全更改了节点的子节点及其子节点的子节点,请调用此方法...这将发布一个 treeStructureChanged 事件。- 参数:
node- 更改节点
-
getPathToRoot
构建节点的父节点,直至并包括根节点,其中原始节点是返回数组中的最后一个元素。返回数组的长度给出节点在树中的深度。- 参数:
aNode- 获取路径的 TreeNode- 返回:
- 一个 TreeNodes 数组,给出从根开始的路径
-
getPathToRoot
构建节点的父节点,直至并包括根节点,其中原始节点是返回数组中的最后一个元素。返回数组的长度给出节点在树中的深度。- 参数:
aNode- 获取路径的 TreeNodedepth- 一个 int,给出已向根执行的步数(在递归调用中),用于调整返回数组的大小- 返回:
- 给出从根到指定节点的路径的 TreeNodes 数组
-
addTreeModelListener
为树更改后发布的 TreeModelEvent 添加监听。- 指定者:
addTreeModelListener在接口TreeModel中- 参数:
l- 要添加的监听器- 参见:
-
removeTreeModelListener
删除以前添加的监听addTreeModelListener().- 指定者:
removeTreeModelListener在接口TreeModel中- 参数:
l- 要删除的监听器- 参见:
-
getTreeModelListeners
返回在此模型上注册的所有树模型监听的数组。- 返回:
-
此模型的所有
TreeModelListeners 或空数组(如果当前没有注册树模型监听器) - 自从:
- 1.4
- 参见:
-
fireTreeNodesChanged
protected void fireTreeNodesChanged(Object source, Object [] path, int[] childIndices, Object [] children) 通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
source-TreeModelEvent的来源;通常thispath- 更改的节点的父节点的路径;使用null来识别根已经改变childIndices- 已更改元素的索引children- 改变的元素
-
fireTreeNodesInserted
protected void fireTreeNodesInserted(Object source, Object [] path, int[] childIndices, Object [] children) 通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
source-TreeModelEvent的来源;通常thispath- 添加节点的父节点的路径childIndices- 新元素的索引children- 新元素
-
fireTreeNodesRemoved
protected void fireTreeNodesRemoved(Object source, Object [] path, int[] childIndices, Object [] children) 通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
source-TreeModelEvent的来源;通常thispath- 从中删除节点的父节点的路径childIndices- 删除元素的索引children- 删除的元素
-
fireTreeStructureChanged
protected void fireTreeStructureChanged(Object source, Object [] path, int[] childIndices, Object [] children) 通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
source-TreeModelEvent的来源;通常thispath- 已更改结构的父级路径;使用null来识别根已经改变childIndices- 受影响元素的索引children- 受影响的元素
-
getListeners
返回当前在此模型上注册为FooListener的所有对象的数组。FooListener是使用addFooListener方法注册的。您可以使用类文字指定
listenerType参数,例如FooListener.class。例如,您可以使用以下代码查询DefaultTreeModelm的树模型监听器:TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
如果不存在这样的监听器,则此方法返回一个空数组。- 类型参数:
T- 监听器类型- 参数:
listenerType- 请求的监听器类型- 返回:
-
在此组件上注册为
FooListener的所有对象的数组,如果没有添加此类监听器,则为空数组 - 抛出:
ClassCastException- 如果listenerType没有指定实现java.util.EventListener的类或接口- 自从:
- 1.3
- 参见:
-