- 所有已知的实现类:
-
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。intgetChildCount(Object parent) 返回parent的子项数。intgetIndexOfChild(Object parent, Object child) 返回父级中子项的索引。getRoot()返回树的根。boolean如果node是叶子节点,则返回true。void删除先前使用addTreeModelListener添加的侦听器。voidvalueForPathChanged(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- 要移除的侦听器 - 参见:
-