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