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 时,进行通知。 |
方法详细信息 |
---|
Object getRoot()
null
。
Object getChild(Object parent, int index)
index
位置的
parent
的子节点。
parent
必须是以前从此数据源获取的节点。如果
index
是
parent
的一个有效索引(即:
index >= 0 && index < getChildCount(parent
)),则此方法不应返回
null
。
parent
- 从此数据源获取的树中的节点
index
位置的
parent
的子节点
int getChildCount(Object parent)
parent
的子节点数。如果该节点为叶节点,或者它没有子节点,则返回 0。
parent
必须是以前从此数据源获取的节点。
parent
- 从此数据源获取的树中的节点
parent
的子节点数
boolean isLeaf(Object node)
node
为叶节点,则返回
true
。即使
node
没有子节点,此方法也可能返回
false
。例如,文件系统中的目录可以不包含任何文件;表示该目录的节点不是叶节点,但是它也没有任何子节点。
node
- 从此数据源获取的树中的节点
node
为叶节点,则返回 true
void valueForPathChanged(TreePath path, Object newValue)
path
标识的项的值更改为
newValue
时,进行通知。如果
newValue
表示一个真实的新值,则该模型应发布一个
treeNodesChanged
事件。
path
- 用户已更改的节点的路径
newValue
- TreeCellEditor 的新值
int getIndexOfChild(Object parent, Object child)
parent
或
child
为
null
,则返回 -1。如果
parent
或
child
不属于此树模型,则返回 -1。
parent
- 从此数据源获取的树中的节点
child
- 相关的节点
child
或
parent
为
null
,或不属于此树模型,则返回 -1
void addTreeModelListener(TreeModelListener l)
TreeModelEvent
添加侦听器。
l
- 要添加的侦听器
removeTreeModelListener(javax.swing.event.TreeModelListener)
void removeTreeModelListener(TreeModelListener l)
addTreeModelListener
添加的侦听器。
l
- 要移除的侦听器
addTreeModelListener(javax.swing.event.TreeModelListener)