- 所有已知的实现类:
DefaultTreeModel
public interface TreeModel
JTree
使用的型号。
JTree
及其相关类广泛使用 TreePath
来识别 TreeModel
中的节点。如果 TreeModel
返回相同的对象,与 equals
相比,在同一父级下的两个不同索引处,则生成的 TreePath
对象也将被视为相等。某些实现可能假设如果两个 TreePath
相等,则它们标识相同的节点。如果不满足此条件,可能会导致绘画问题和其他异常情况。换句话说,如果给定父对象的 getChild
返回相同的对象(由 equals
确定)可能会导致问题,建议您避免这样做。
同样,JTree
及其相关类将 TreePath
放在 Map
中。因此,如果一个节点被请求两次,则返回值必须相等(使用 equals
方法)并且具有相同的 hashCode
。
有关树模型的更多信息,包括自定义实现的示例,请参阅 The Java Tutorial. 中的 如何使用树木
- 参见:
-
方法总结
修饰符和类型方法描述void
为树更改后发布的TreeModelEvent
添加监听器。返回父子数组中索引为index
的parent
的子元素。int
getChildCount
(Object parent) 返回parent
的孩子数。int
getIndexOfChild
(Object parent, Object child) 返回父项中子项的索引。getRoot()
返回树的根。boolean
如果node
是叶子,则返回true
。void
删除之前使用addTreeModelListener
添加的监听器。void
valueForPathChanged
(TreePath path, Object newValue) 当用户将path
标识的项目的值更改为newValue
时发送消息。
-
方法详情
-
getRoot
Object getRoot()返回树的根。仅当树没有节点时才返回null
。- 返回:
- 树根
-
getChild
返回父子数组中索引为index
的parent
的子元素。parent
必须是以前从该数据源获得的节点。这不应返回null
如果index
是parent
的有效索引(即index >= 0 && index < getChildCount(parent
))。- 参数:
parent
- 树中的一个节点,从此数据源获得index
- 要返回的孩子的索引- 返回:
-
索引为
index
的parent
的孩子
-
getChildCount
返回parent
的孩子数。如果节点是叶节点或没有子节点,则返回 0。parent
必须是以前从该数据源获得的节点。- 参数:
parent
- 树中的一个节点,从此数据源获得- 返回:
-
节点
parent
的子节点数
-
isLeaf
如果node
是叶子,则返回true
。即使node
没有孩子,此方法也可能返回false
。例如,文件系统中的目录可能不包含任何文件;代表目录的节点不是叶节点,但它也没有子节点。- 参数:
node
- 树中的一个节点,从此数据源获得- 返回:
-
如果
node
是叶子,则为真
-
valueForPathChanged
当用户将path
标识的项目的值更改为newValue
时发送消息。如果newValue
表示一个真正的新值,模型应该发布一个treeNodesChanged
事件。- 参数:
path
- 用户更改的节点路径newValue
- 来自 TreeCellEditor 的新值
-
getIndexOfChild
返回父项中子项的索引。如果parent
或child
是null
,则返回 -1。如果parent
或child
不属于此树模型,则返回 -1。- 参数:
parent
- 树中的一个节点,从此数据源获得child
- 我们感兴趣的节点- 返回:
-
子项在父项中的索引,如果
child
或parent
是null
或不属于此树模型,则为 -1
-
addTreeModelListener
为树更改后发布的TreeModelEvent
添加监听器。- 参数:
l
- 要添加的监听器- 参见:
-
removeTreeModelListener
删除之前使用addTreeModelListener
添加的监听器。- 参数:
l
- 要删除的监听器- 参见:
-