- 所有已知的实现类:
-
DefaultTreeModel
public interface TreeModel
JTree
使用的模型。
JTree
及其相关类广泛使用TreePath
来标识TreeModel
中的节点。如果一个TreeModel
在同一父级下的两个不同索引处返回相同的对象(通过equals
比较),则生成的TreePath
对象也将被视为相等。一些实现可能会假设如果两个TreePath
相等,则它们标识相同的节点。如果不满足此条件,可能会导致绘制问题和其他奇怪的现象。换句话说,如果对于给定父级的getChild
返回相同的对象(根据equals
确定),可能会出现问题,建议避免这样做。
类似地,JTree
及其相关类将TreePath
放入Map
中。因此,如果一个节点被请求两次,则返回值必须相等(使用equals
方法)并且具有相同的hashCode
。
有关树模型的更多信息,包括自定义实现示例,请参阅The Java Tutorial中的How to Use Trees。
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
添加在树更改后发布的TreeModelEvent
的侦听器。返回父级的子项在父级子数组中的索引index
。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
时调用。
-
Method Details
-
getRoot
Object getRoot()返回树的根。仅当树没有节点时返回null
。- 返回:
- 树的根
-
getChild
返回父级的子项在父级子数组中的索引index
。必须是先前从此数据源获取的节点。如果index
是parent
的有效索引(即index >= 0 && index < getChildCount(parent
)),则不应返回null
。- 参数:
-
parent
- 树中的一个节点,从此数据源获取 -
index
- 要返回的子项的索引 - 返回:
-
parent
在索引index
处的子项
-
getChildCount
返回parent
的子项数。如果节点是叶子节点或没有子项,则返回0。必须是先前从此数据源获取的节点。- 参数:
-
parent
- 树中的一个节点,从此数据源获取 - 返回:
-
节点
parent
的子项数
-
isLeaf
如果node
是叶子节点,则返回true
。即使node
没有子项,此方法也可能返回false
。例如,文件系统中的目录可能不包含文件;表示目录的节点不是叶子节点,但它也没有子项。- 参数:
-
node
- 树中的一个节点,从此数据源获取 - 返回:
-
如果
node
是叶子节点,则返回true
-
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
- 要移除的侦听器 - 参见:
-