|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.tree
类 DefaultMutableTreeNode
java.lang.Object javax.swing.tree.DefaultMutableTreeNode
- 所有已实现的接口:
- Serializable, Cloneable, MutableTreeNode, TreeNode
- 直接已知子类:
- JTree.DynamicUtilTreeNode
-
public class DefaultMutableTreeNode
- extends Object
- implements Cloneable, MutableTreeNode, Serializable
DefaultMutableTreeNode
是树数据结构中的通用节点。有关使用默认可变树节点的示例,请参阅《The Java Tutorial》中的 How to Use Trees 一节。
一个树节点最多可以有一个父节点、0 或多个子节点。DefaultMutableTreeNode
为检查和修改节点的父节点和子节点提供操作,也为检查节点所属的树提供操作。节点的树是所有节点的集合,通过从某一节点开始并沿着父节点和子节点的所有可能的链接,可以访问这些节点。不带父节点的节点是树的根;不带子节点的节点是叶节点。树可以由许多子树组成,每个节点充当自已的子树的根。
此类提供按各种顺序有效地遍历树或子树,或者沿着两节点间的路径进行遍历的枚举。DefaultMutableTreeNode
还可以保存对用户对象的引用,用户对象由用户使用。通过 toString()
请求 DefaultMutableTreeNode
的字符串表示形式将返回其用户对象的字符串表示形式。
这不是一个线程安全的类。如果打算在多个线程中使用 DefaultMutableTreeNode(或 TreeNodes 的树),则需要执行自己的同步。要采用的较好惯例是在树的根节点上进行同步。
尽管 DefaultMutableTreeNode 实现 MutableTreeNode 接口,并允许您将其添加到 MutableTreeNode 的任何实现中,但是并不是 DefaultMutableTreeNode 中的所有方法都将适用于所有的 MutableTreeNodes 实现。特别是通过提供的一些枚举,使用其中一些方法,我们假定 DefaultMutableTreeNode 只包含 DefaultMutableNode 实例。无论添加什么实现,所有的 TreeNode/MutableTreeNode 方法都将表现出定义的行为。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
- 另请参见:
MutableTreeNode
字段摘要 | |
---|---|
protected boolean |
allowsChildren 如果该节点可以有子节点,则为 true |
protected Vector |
children 子节点的数组,如果此节点没有子节点,则可以为 null |
static Enumeration<TreeNode> |
EMPTY_ENUMERATION 始终为空的枚举。 |
protected MutableTreeNode |
parent 此节点的父节点,如果此节点没有父节点,则为 null |
protected Object |
userObject 可选用户对象 |
构造方法摘要 | |
---|---|
DefaultMutableTreeNode() 创建没有父节点和子节点的树节点,该树节点允许有子节点。 |
|
DefaultMutableTreeNode(Object userObject) 创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。 |
|
DefaultMutableTreeNode(Object userObject, boolean allowsChildren) 创建没有父节点和子节点的树节点,使用指定的用户对象对它进行初始化,仅在指定时才允许有子节点。 |
方法摘要 | |
---|---|
void |
add(MutableTreeNode newChild) 从其父节点移除 newChild ,并通过将其添加到此节点的子数组的结尾,使其成为此节点的子节点。 |
Enumeration |
breadthFirstEnumeration() 创建并返回一个枚举,该枚举按广度优先的顺序遍历以此节点为根的子树。 |
Enumeration |
children() 创建并返回此节点的子节点的正向枚举。 |
Object |
clone() 重写以克隆 public。 |
Enumeration |
depthFirstEnumeration() 创建并返回一个枚举,该枚举按深度优先的顺序遍历以此节点为根的子树。 |
boolean |
getAllowsChildren() 如果允许此节点拥有子节点,则返回 true。 |
TreeNode |
getChildAfter(TreeNode aChild) 返回此节点的子节点数组中刚好跟在 aChild 之后的子节点,它必须是此节点的子节点。 |
TreeNode |
getChildAt(int index) 返回此节点的子节点数组中指定索引处的子节点。 |
TreeNode |
getChildBefore(TreeNode aChild) 返回此节点的子节点数组中刚好在 aChild 之前的子节点,它必须是此节点的子节点。 |
int |
getChildCount() 返回此节点的子节点数。 |
int |
getDepth() 返回以此节点为根的树的深度 -- 从此节点到叶节点的最长距离。 |
TreeNode |
getFirstChild() 返回此节点的第一个子节点。 |
DefaultMutableTreeNode |
getFirstLeaf() 查找并返回为此节点后代的第一个叶节点,即此节点或其第一个子节点的第一个叶节点。 |
int |
getIndex(TreeNode aChild) 返回此节点的子节点数组中指定子节点的索引。 |
TreeNode |
getLastChild() 返回此节点的最后一个子节点。 |
DefaultMutableTreeNode |
getLastLeaf() 查找并返回为此节点后代的最后一个叶节点,即此节点或其最后一个子节点的最后一个叶节点。 |
int |
getLeafCount() 返回为此节点后代的叶节点总数。 |
int |
getLevel() 返回此节点上的级数 -- 从根到此节点的距离。 |
DefaultMutableTreeNode |
getNextLeaf() 返回此节点后面的叶节点,如果此节点是树中的最后一个叶节点,则返回 null。 |
DefaultMutableTreeNode |
getNextNode() 返回在此节点的树的前序遍历中此节点之后的节点。 |
DefaultMutableTreeNode |
getNextSibling() 返回父节点的子节点数组中此节点的下一个兄弟节点。 |
TreeNode |
getParent() 返回此节点的父节点,如果此节点没有父节点,则返回 null。 |
TreeNode[] |
getPath() 返回从根到达此节点的路径。 |
protected TreeNode[] |
getPathToRoot(TreeNode aNode, int depth) 构建节点的父节点一直到根节点(包括根节点),其中源节点是返回数组中的最后一个元素。 |
DefaultMutableTreeNode |
getPreviousLeaf() 返回此节点之前的叶节点,如果此节点是树中的第一个叶节点,则返回 null。 |
DefaultMutableTreeNode |
getPreviousNode() 返回在此节点树的前序遍历中此节点之前的节点。 |
DefaultMutableTreeNode |
getPreviousSibling() 返回父节点的子节点数组中此节点的前一个兄弟节点。 |
TreeNode |
getRoot() 返回包含此节点的树的根。 |
TreeNode |
getSharedAncestor(DefaultMutableTreeNode aNode) 返回此节点和 aNode 最近的共同祖先。 |
int |
getSiblingCount() 返回此节点的兄弟节点数。 |
Object |
getUserObject() 返回此节点的用户对象。 |
Object[] |
getUserObjectPath() 返回从根到达此节点的路径。 |
void |
insert(MutableTreeNode newChild, int childIndex) 从其现有父节点移除 newChild (如果它有父节点),将子节点的父节点设置为此节点,然后,将该子节点添加到此节点位于索引 childIndex 处的子节点数组。 |
boolean |
isLeaf() 如果此节点没有子节点,则返回 true。 |
boolean |
isNodeAncestor(TreeNode anotherNode) 如果 anotherNode 是此节点的祖先 -- 如果它是此节点、此节点的父节点或此节点的父节点的祖先,则返回 true。 |
boolean |
isNodeChild(TreeNode aNode) 如果 aNode 是此节点的子节点,则返回 true。 |
boolean |
isNodeDescendant(DefaultMutableTreeNode anotherNode) 如果 anotherNode 是此节点的后代 -- 如果它是此节点、此节点的一个子节点或此节点的一个子节点的后代,则返回 true。 |
boolean |
isNodeRelated(DefaultMutableTreeNode aNode) 当且仅当 aNode 位于与此节点相同的树中时,返回 true。 |
boolean |
isNodeSibling(TreeNode anotherNode) 如果 anotherNode 是此节点的兄弟节点(与此节点共享同一父节点),则返回 true。 |
boolean |
isRoot() 如果此节点是树的根,则返回 true。 |
Enumeration |
pathFromAncestorEnumeration(TreeNode ancestor) 创建并返回沿着从 ancestor 到此节点的路径的一个枚举。 |
Enumeration |
postorderEnumeration() 创建并返回按后序遍历以此节点为根的树的一个枚举。 |
Enumeration |
preorderEnumeration() 创建并返回按前序遍历以此节点为根的子树的一个枚举。 |
void |
remove(int childIndex) 从此节点的子节点中移除指定索引处的子节点,并将该节点的父节点设置为 null。 |
void |
remove(MutableTreeNode aChild) 通过向其提供一个 null 父节点,从此节点的子节点数组移除 aChild 。 |
void |
removeAllChildren() 通过将其父节点设置为 null,移除此节点的所有子节点。 |
void |
removeFromParent() 通过向此节点提供一个 null 父节点,从树中移除以此节点为根的子树。 |
void |
setAllowsChildren(boolean allows) 确定是否允许此节点拥有子节点。 |
void |
setParent(MutableTreeNode newParent) 将此节点的父节点设置为 newParent ,但不更改父节点的子节点数组。 |
void |
setUserObject(Object userObject) 将此节点的用户对象设置为 userObject 。 |
String |
toString() 返回将 toString() 发送到此节点的用户对象的结果,如果此节点没有用户对象,则返回 null。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
EMPTY_ENUMERATION
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
-
始终为空的枚举。当请求叶节点的子节点的枚举时使用它。
parent
protected MutableTreeNode parent
-
此节点的父节点,如果此节点没有父节点,则为 null
children
protected Vector children
-
子节点的数组,如果此节点没有子节点,则可以为 null
userObject
protected transient Object userObject
-
可选用户对象
allowsChildren
protected boolean allowsChildren
-
如果该节点可以有子节点,则为 true
构造方法详细信息 |
---|
DefaultMutableTreeNode
public DefaultMutableTreeNode()
- 创建没有父节点和子节点的树节点,该树节点允许有子节点。
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject)
-
创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。
- 参数:
userObject
- 用户提供的 Object,它构成节点的数据
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
-
创建没有父节点和子节点的树节点,使用指定的用户对象对它进行初始化,仅在指定时才允许有子节点。
- 参数:
userObject
- 用户提供的 Object,它构成该节点的数据allowsChildren
- 如果为 true,则允许该节点有子节点,否则它始终为一个叶节点
方法详细信息 |
---|
insert
public void insert(MutableTreeNode newChild, int childIndex)
-
从其现有父节点移除
newChild
(如果它有父节点),将子节点的父节点设置为此节点,然后,将该子节点添加到此节点位于索引childIndex
处的子节点数组。newChild
不能为 null,也不能为此节点的祖先。 -
- 指定者:
-
接口
MutableTreeNode
中的insert
-
- 参数:
newChild
- 在此节点下插入的 MutableTreeNodechildIndex
- 此节点的子节点数组中的索引,它是此节点插入的位置- 抛出:
ArrayIndexOutOfBoundsException
- 如果childIndex
超出边界IllegalArgumentException
- 如果newChild
为 null,或者是此节点的祖先IllegalStateException
- 如果此节点不允许有子节点- 另请参见:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)