JavaTM Platform
Standard Ed. 6

javax.swing.tree
接口 TreeModel

所有已知实现类:
DefaultTreeModel

public interface TreeModel

JTree 所使用的模型。

JTree 及其相关类大量使用了 TreePath,以标识 TreeModel 中的节点。如果 TreeModel 返回相同的对象(使用 equals 比较同一父节点下的两个不同索引的节点),那么产生的 TreePath 对象也被认为是相等的。某些实现可以假定,如果两个 TreePath 相等,则它们标识的节点也相等。如果不能满足此条件,则可能导致绘制问题和其他奇怪的问题。换句话说,如果对给定父节点调用 getChild 返回相同的 Object(由 equals 确定),则可能出现问题,建议您不要执行此操作。

类似地,JTree 及其相关类将 TreePath 置于 Map 中。因此,如果两次请求一个节点,则其返回值必须相等(使用 equals 方法)并且具有相同的 hashCode

有关树模型的更多信息(包括自定义实现的示例),请参阅 The Java Tutorial 中的 How to Use Trees

另请参见:
TreePath

方法摘要
 void addTreeModelListener(TreeModelListener l)
          为树更改后发布的 TreeModelEvent 添加侦听器。
 Object getChild(Object parent, int index)
          返回父节点的子数组中索引 index 位置的 parent 的子节点。
 int getChildCount(Object parent)
          返回 parent 的子节点数。
 int getIndexOfChild(Object parent, Object child)
          返回父节点中子节点的索引。
 Object getRoot()
          返回树的根。
 boolean isLeaf(Object node)
          如果 node 为叶节点,则返回 true
 void removeTreeModelListener(TreeModelListener l)
          移除以前通过 addTreeModelListener 添加的侦听器。
 void valueForPathChanged(TreePath path, Object newValue)
          用户已将 path 标识的项的值更改为 newValue 时,进行通知。
 

方法详细信息

getRoot

Object getRoot()
返回树的根。仅当树没有节点时,才返回 null

返回:
树的根

getChild

Object getChild(Object parent,
                int index)
返回父节点的子数组中索引 index 位置的 parent 的子节点。parent 必须是以前从此数据源获取的节点。如果 indexparent 的一个有效索引(即:index >= 0 && index < getChildCount(parent)),则此方法不应返回 null

参数:
parent - 从此数据源获取的树中的节点
返回:
索引 index 位置的 parent 的子节点

getChildCount

int getChildCount(Object parent)
返回 parent 的子节点数。如果该节点为叶节点,或者它没有子节点,则返回 0。parent 必须是以前从此数据源获取的节点。

参数:
parent - 从此数据源获取的树中的节点
返回:
节点 parent 的子节点数

isLeaf

boolean isLeaf(Object node)
如果 node 为叶节点,则返回 true。即使 node 没有子节点,此方法也可能返回 false。例如,文件系统中的目录可以不包含任何文件;表示该目录的节点不是叶节点,但是它也没有任何子节点。

参数:
node - 从此数据源获取的树中的节点
返回:
如果 node 为叶节点,则返回 true

valueForPathChanged

void valueForPathChanged(TreePath path,
                         Object newValue)
用户已将 path 标识的项的值更改为 newValue 时,进行通知。如果 newValue 表示一个真实的新值,则该模型应发布一个 treeNodesChanged 事件。

参数:
path - 用户已更改的节点的路径
newValue - TreeCellEditor 的新值

getIndexOfChild

int getIndexOfChild(Object parent,
                    Object child)
返回父节点中子节点的索引。如果 parentchildnull,则返回 -1。如果 parentchild 不属于此树模型,则返回 -1。

参数:
parent - 从此数据源获取的树中的节点
child - 相关的节点
返回:
父节点中子节点的索引,如果 childparentnull,或不属于此树模型,则返回 -1

addTreeModelListener

void addTreeModelListener(TreeModelListener l)
为树更改后发布的 TreeModelEvent 添加侦听器。

参数:
l - 要添加的侦听器
另请参见:
removeTreeModelListener(javax.swing.event.TreeModelListener)

removeTreeModelListener

void removeTreeModelListener(TreeModelListener l)
移除以前通过 addTreeModelListener 添加的侦听器。

参数:
l - 要移除的侦听器
另请参见:
addTreeModelListener(javax.swing.event.TreeModelListener)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策