java.lang.Object javax.swing.tree.DefaultTreeModel
public class DefaultTreeModel
使用 TreeNodes 的简单树数据模型。有关使用 DefaultTreeModel 的更多信息和示例,请参阅 The Java Tutorial 中的 How to Use Trees。
警告:此类的序列化对象将与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
字段摘要 | |
---|---|
protected boolean |
asksAllowsChildren 确定 isLeaf 方法如何判断一个节点是否为叶节点。 |
protected EventListenerList |
listenerList 侦听器。 |
protected TreeNode |
root 树的根。 |
构造方法摘要 | |
---|---|
DefaultTreeModel(TreeNode root) 创建其中任何节点都可以有子节点的树。 |
|
DefaultTreeModel(TreeNode root, boolean asksAllowsChildren) 创建一棵树,指定某个节点是否可以有子节点,或者是否仅某些节点可以有子节点。 |
方法摘要 | ||
---|---|---|
void |
addTreeModelListener(TreeModelListener l) 为树更改后发布的 TreeModelEvent 添加侦听器。 |
|
boolean |
asksAllowsChildren() 告知如何确定叶节点。 |
|
protected void |
fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有需要此事件类型的通知的已注册侦听器。 |
|
protected void |
fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有需要此事件类型的通知的已注册侦听器。 |
|
protected void |
fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有需要此事件类型的通知的已注册侦听器。 |
|
protected void |
fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children) 通知所有需要此事件类型的通知的已注册侦听器。 |
|
Object |
getChild(Object parent, int index) 返回父节点的子节点数组中索引 index 处的 parent 的子节点。 |
|
int |
getChildCount(Object parent) 返回 parent 的子节点数。 |
|
int |
getIndexOfChild(Object parent, Object child) 返回父节点中子节点的索引。 |
|
|
getListeners(Class<T> listenerType) 返回当前已在此模型上注册为 FooListener 的所有对象组成的数组。 |
|
TreeNode[] |
getPathToRoot(TreeNode aNode) 向上构建节点的父节点一直到根节点(包括根节点),其中原始节点是返回数组中的最后一个元素。 |
|
protected TreeNode[] |
getPathToRoot(TreeNode aNode, int depth) 向上构建节点的父节点一直到根节点(包括根节点),其中原始节点是返回数组中的最后一个元素。 |
|
Object |
getRoot() 返回树的根。 |
|
TreeModelListener[] |
getTreeModelListeners() 返回在此模型上注册的所有树模型侦听器组成的数组。 |
|
void |
insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index) 对它进行调用,以便在父节点的子节点中的 index 位置插入 newChild。 |
|
boolean |
isLeaf(Object node) 返回指定的节点是否为叶节点。 |
|
void |
nodeChanged(TreeNode node) 更改节点在树中的表示方式之后,调用此方法。 |
|
void |
nodesChanged(TreeNode node, int[] childIndices) 更改由 childIndicies 标识的子对象在树中的表示方式之后,调用此方法。 |
|
void |
nodeStructureChanged(TreeNode node) 如果完全更改了节点的子节点、子节点的子节点、依此类推,则调用此方法。 |
|
void |
nodesWereInserted(TreeNode node, int[] childIndices) 将某些 TreeNodes 插入节点之后,调用此方法。 |
|
void |
nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren) 从节点移除一些 TreeNodes 之后,调用此方法。 |
|
void |
reload() 如果已修改此模型依赖的 TreeNode ,则调用此方法。 |
|
void |
reload(TreeNode node) 如果已修改此模型依赖的 TreeNode ,则调用此方法。 |
|
void |
removeNodeFromParent(MutableTreeNode node) 通知它从其父节点中移除节点。 |
|
void |
removeTreeModelListener(TreeModelListener l) 移除以前使用 addTreeModelListener() 添加的侦听器。 |
|
void |
setAsksAllowsChildren(boolean newValue) 通过向 TreeNodes 询问 getAllowsChildren() 或 isLeaf(),设置是否测试无叶性。 |
|
void |
setRoot(TreeNode root) 将根设置为 root 。 |
|
void |
valueForPathChanged(TreePath path, Object newValue) 此方法设置由路径标识的 TreeNode 的用户对象,并发送更改的节点。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected TreeNode root
protected EventListenerList listenerList
protected boolean asksAllowsChildren
isLeaf
方法如何判断一个节点是否为叶节点。如果为 true,并且节点不允许有子节点,则该节点是叶节点。(如果它允许有子节点,则它不是叶节点,即使不存在任何子节点也是这样。)例如,让您区分文件系统中的
文件夹 节点和
文件 节点。
如果此值为 false,则没有子节点的任何节点都是叶节点,并且任何节点都可以获取子节点。
构造方法详细信息 |
---|
public DefaultTreeModel(TreeNode root)
root
- 作为树的根的 TreeNode 对象
DefaultTreeModel(TreeNode, boolean)
public DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
root
- 作为树的根的 TreeNode 对象
asksAllowsChildren
- 一个布尔值,如果任何节点都可以有子节点,则为 false,如果询问每个节点看是否有子节点,则为 true
asksAllowsChildren
方法详细信息 |
---|
public void setAsksAllowsChildren(boolean newValue)
public boolean asksAllowsChildren()
asksAllowsChildren
public void setRoot(TreeNode root)
root
。
root
为 null 暗示树不显示任何内容,并且是合法的。
public Object getRoot()
public int getIndexOfChild(Object parent, Object child)
null
,则返回 -1。
TreeModel
中的
getIndexOfChild
parent
- 从此数据源获取的树中的节点
child
- 用户需要的节点
null
,则返回 -1
public Object getChild(Object parent, int index)
parent
- 从此数据源获取的树中的节点
public int getChildCount(Object parent)
TreeModel
中的
getChildCount
parent
- 从此数据源获取的树中的节点
public boolean isLeaf(Object node)
askAllowsChildren
设置。
node
- 要检查的节点
asksAllowsChildren
,
TreeModel.isLeaf(java.lang.Object)
public void reload()
TreeNode
,则调用此方法。该模型将通知其所有侦听器该模型已更改。
public void valueForPathChanged(TreePath path, Object newValue)
TreeModel
中的
valueForPathChanged
path
- 用户已更改的节点的路径
newValue
- TreeCellEditor 的新值
public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
public void removeNodeFromParent(MutableTreeNode node)
public void nodeChanged(TreeNode node)
public void reload(TreeNode node)
TreeNode
,则调用此方法。该模型将通知其所有侦听器给定节点下面的模型已更改。
node
- 其下面的模型已更改的节点
public void nodesWereInserted(TreeNode node, int[] childIndices)
public void nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
public void nodesChanged(TreeNode node, int[] childIndices)
public void nodeStructureChanged(TreeNode node)
public TreeNode[] getPathToRoot(TreeNode aNode)
aNode
- 获取其路径的 TreeNode
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
aNode
- 要获取其路径的 TreeNode
depth
- 提供对根(通过递归调用)执行的步骤数的 int,用于确定返回的数组的大小
public void addTreeModelListener(TreeModelListener l)
TreeModel
中的
addTreeModelListener
l
- 要添加的侦听器
removeTreeModelListener(javax.swing.event.TreeModelListener)
public void removeTreeModelListener(TreeModelListener l)
TreeModel
中的
removeTreeModelListener
l
- 要移除的侦听器
addTreeModelListener(javax.swing.event.TreeModelListener)
public TreeModelListener[] getTreeModelListeners()
TreeModelListener
,如果当前没有注册任何树模型侦听器,则返回一个空数组
addTreeModelListener(javax.swing.event.TreeModelListener)
,
removeTreeModelListener(javax.swing.event.TreeModelListener)
protected void fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 更改的节点
path
- 到根节点的路径
childIndices
- 更改的元素的索引
children
- 更改的元素
EventListenerList
protected void fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 插入新元素的节点
path
- 到根节点的路径
childIndices
- 新元素的索引
children
- 新元素
EventListenerList
protected void fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 移除元素的节点
path
- 到根节点的路径
childIndices
- 移除元素的索引
children
- 移除的元素
EventListenerList
protected void fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 从该节点开始树模型已更改的节点
path
- 到根节点的路径
childIndices
- 受影响的元素的索引
children
- 受影响的元素
EventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
的所有对象组成的数组。
FooListener
是用
addFooListener
方法注册的。
可以使用 class 字面值来指定 listenerType
参数,如 FooListener.class
。例如,可以使用下面的代码查询 DefaultTreeModel
m
的树模型侦听器:
TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));如果不存在这样的侦听器,则此方法将返回一个空数组。
listenerType
- 所请求侦听器的类型;该参数应该指定一个从
java.util.EventListener
继承的接口
FooListener
的所有对象的数组,如果没有添加这样的侦听器,则返回一个空数组
ClassCastException
- 如果
listenerType
没有指定实现
java.util.EventListener
的类或接口
getTreeModelListeners()