JavaTM Platform
Standard Ed. 6

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 - 在此节点下插入的 MutableTreeNode
childIndex - 此节点的子节点数组中的索引,它是此节点插入的位置
抛出:
ArrayIndexOutOfBoundsException - 如果 childIndex 超出边界
IllegalArgumentException - 如果 newChild 为 null,或者是此节点的祖先
IllegalStateException - 如果此节点不允许有子节点
另请参见:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

remove

public void remove(int childIndex)
从此节点的子节点中移除指定索引处的子节点,并将该节点的父节点设置为 null。要移除的子节点必须是 MutableTreeNode

指定者:
接口 MutableTreeNode 中的 remove
参数:
childIndex - 要移除的此节点的子节点数组中子节点的索引
抛出:
ArrayIndexOutOfBoundsException - 如果 childIndex 超出边界

setParent

public void setParent(MutableTreeNode newParent)
将此节点的父节点设置为 newParent,但不更改父节点的子节点数组。从 insert()remove() 调用此方法,以重新分配子节点的父节点,而不应从其他任何地方向它传递消息。

指定者:
接口 MutableTreeNode 中的 setParent
参数:
newParent - 此节点的新父节点

getParent

public TreeNode getParent()
返回此节点的父节点,如果此节点没有父节点,则返回 null。

指定者:
接口 TreeNode 中的 getParent
返回:
此节点的父 TreeNode,如果此节点没有父节点,则返回 null

getChildAt

public TreeNode getChildAt(int index)
返回此节点的子节点数组中指定索引处的子节点。

指定者:
接口 TreeNode 中的 getChildAt
参数:
index - 此节点的子节点数组中的一个索引
返回:
此节点的子节点数组中指定索引处的 TreeNode
抛出:
ArrayIndexOutOfBoundsException - 如果 index 超出边界

getChildCount

public int getChildCount()
返回此节点的子节点数。

指定者:
接口 TreeNode 中的 getChildCount
返回:
提供此节点的子节点数的 int

getIndex

public int getIndex(TreeNode aChild)
返回此节点的子节点数组中指定子节点的索引。如果指定节点不是此节点的子节点,则返回 -1。此方法执行线性搜索,该方法花费时间为 O(n),其中 n 表示子节点数。

指定者:
接口 TreeNode 中的 getIndex
参数:
aChild - 要在此节点的子节点中搜索的 TreeNode
返回:
提供此节点的子节点数组中节点索引的 int,如果指定的节点不是此节点的子节点,则返回 -1
抛出:
IllegalArgumentException - 如果 aChild 为 null

children

public Enumeration children()
创建并返回此节点的子节点的正向枚举。修改此节点的子节点数组会使修改前创建的任何子节点枚举无效。

指定者:
接口 TreeNode 中的 children
返回:
此节点的子节点 Enumeration

setAllowsChildren

public void setAllowsChildren(boolean allows)
确定是否允许此节点拥有子节点。如果 allows 为 false,则移除此节点的所有子节点。

注:默认情况下,节点允许有子节点。

参数:
allows - 如果允许此节点拥有子节点,则为 true

getAllowsChildren

public boolean getAllowsChildren()
如果允许此节点拥有子节点,则返回 true。

指定者:
接口 TreeNode 中的 getAllowsChildren
返回:
如果此节点允许拥有子节点,则返回 true,否则返回 false

setUserObject

public void setUserObject(Object userObject)
将此节点的用户对象设置为 userObject

指定者:
接口 MutableTreeNode 中的 setUserObject
参数:
userObject - 构成此节点的用户指定数据的 Object
另请参见:
getUserObject(), toString()

getUserObject

public Object getUserObject()
返回此节点的用户对象。

返回:
用户存储在此节点的 Object
另请参见:
setUserObject(java.lang.Object), toString()

removeFromParent

public void removeFromParent()
通过向此节点提供一个 null 父节点,从树中移除以此节点为根的子树。如果此节点是其树的根,则不执行任何操作。

指定者:
接口 MutableTreeNode 中的 removeFromParent

remove

public void remove(MutableTreeNode aChild)
通过向其提供一个 null 父节点,从此节点的子节点数组移除 aChild

指定者:
接口 MutableTreeNode 中的 remove
参数:
aChild - 要移除的此节点的子节点
抛出:
IllegalArgumentException - 如果 aChild 为 null,或者不是此节点的子节点

removeAllChildren

public void removeAllChildren()
通过将其父节点设置为 null,移除此节点的所有子节点。如果此节点没有子节点,则此方法不执行任何操作。


add

public void add(MutableTreeNode newChild)
从其父节点移除 newChild,并通过将其添加到此节点的子数组的结尾,使其成为此节点的子节点。

参数:
newChild - 作为此节点的子节点添加的节点
抛出:
IllegalArgumentException - 如果 newChild 为 null
IllegalStateException - 如果此节点不允许拥有子节点
另请参见:
insert(javax.swing.tree.MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode anotherNode)
如果 anotherNode 是此节点的祖先 -- 如果它是此节点、此节点的父节点或此节点的父节点的祖先,则返回 true。(注意,节点被认为是它本身的祖先。)如果 anotherNode 为 null,则此方法返回 false。此操作至少花费时间 O(h),其中 h 表示根到此节点的距离。

参数:
anotherNode - 测试是否为此节点的祖先的节点
返回:
如果此节点是 anotherNode 的后代,则返回 true
另请参见:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode), getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
如果 anotherNode 是此节点的后代 -- 如果它是此节点、此节点的一个子节点或此节点的一个子节点的后代,则返回 true。注意,节点被认为是它本身的后代。如果 anotherNode 为 null,则返回 false。此操作至少花费时间 O(h),其中 h 表示根到 anotherNode 的距离。

参数:
anotherNode - 测试是否为此节点的后代的节点
返回:
如果此节点是 anotherNode 的祖先,则返回 true
另请参见:
isNodeAncestor(javax.swing.tree.TreeNode), getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

getSharedAncestor

public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
返回此节点和 aNode 最近的共同祖先。如果不存在这样的祖先 -- 如果此节点和 aNode 位于不同的树中,或者 aNode 为 null,则返回 null。节点被认为是它本身的祖先。

参数:
aNode - 查找其共同祖先的节点
返回:
此节点和 aNode 最近的共同祖先,如果没有,则返回 null
另请参见:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)
当且仅当 aNode 位于与此节点相同的树中时,返回 true。如果 aNode 为 null,则返回 false。

返回:
如果 aNode 位于与此节点相同的树中,则返回 true;如果 aNode 为 null,则返回 false
另请参见:
getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode), getRoot()

getDepth

public int getDepth()
返回以此节点为根的树的深度 -- 从此节点到叶节点的最长距离。如果此节点没有子节点,则返回 0。此操作的开销远大于 getLevel(),因为它必须有效地遍历以此节点为根的整棵树。

返回:
以此节点为根的树的深度
另请参见:
getLevel()

getLevel

public int getLevel()
返回此节点上的级数 -- 从根到此节点的距离。如果此节点为根,则返回 0。

返回:
此节点上的级数
另请参见:
getDepth()

getPath

public TreeNode[] getPath()
返回从根到达此节点的路径。该路径中最后一个元素是此节点。

返回:
提供了路径的 TreeNode 对象组成的数组,其中此路径中的第一个元素是根,最后一个元素是此节点。

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode,
                                   int depth)
构建节点的父节点一直到根节点(包括根节点),其中源节点是返回数组中的最后一个元素。返回的数组长度给出了树中节点的深度。

参数:
aNode - 获取其路径的 TreeNode
depth - 提供朝根的方向(通过递归调用)执行的步骤数的 int,用于衡量返回的数组的大小
返回:
提供从根到指定节点的路径的 TreeNodes 组成的数组。

getUserObjectPath

public Object[] getUserObjectPath()
返回从根到达此节点的路径。如果路径中某些 TreeNodes 的用户对象为 null ,则返回的路径将包含 null。


getRoot

public TreeNode getRoot()
返回包含此节点的树的根。根是所有节点的祖先,其父节点为 null。

返回:
包含此节点的树的根
另请参见:
isNodeAncestor(javax.swing.tree.TreeNode)

isRoot

public boolean isRoot()
如果此节点是树的根,则返回 true。根是树中父节点为 null 的惟一节点;每棵树只有一个根。

返回:
如果此节点是树的根,则返回 true

getNextNode

public DefaultMutableTreeNode getNextNode()
返回在此节点的树的前序遍历中此节点之后的节点。如果此节点是该遍历中的最后一个节点,则返回 null。这是遍历整棵树的一种低效方式;请改用枚举。

返回:
前序遍历中此节点之后的节点,如果此节点是最后一个节点,则返回 null
另请参见:
preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode getPreviousNode()
返回在此节点树的前序遍历中此节点之前的节点。如果此节点是遍历的第一个节点 -- 树的根,则返回 null。这是遍历整棵树的一种低效方式;请改用枚举。

返回:
前序遍历中此节点之前的节点,如果此节点是第一个节点,则返回 null
另请参见:
preorderEnumeration()

preorderEnumeration

public Enumeration preorderEnumeration()
创建并返回按前序遍历以此节点为根的子树的一个枚举。由枚举的 nextElement() 方法返回的第一个节点是此节点。

通过插入、移除或移动节点修改树可以使修改前创建的任何枚举无效。

返回:
按前序遍历遍历树的一个枚举
另请参见:
postorderEnumeration()

postorderEnumeration

public Enumeration postorderEnumeration()
创建并返回按后序遍历以此节点为根的树的一个枚举。由枚举的 nextElement() 方法返回的第一个节点是最左边的叶节点。这与深度优先遍历相同。

通过插入、移除或移动节点修改树可以使修改前创建的任何枚举无效。

返回:
按后序遍历遍历树的一个枚举
另请参见:
depthFirstEnumeration(), preorderEnumeration()

breadthFirstEnumeration

public Enumeration breadthFirstEnumeration()
创建并返回一个枚举,该枚举按广度优先的顺序遍历以此节点为根的子树。由枚举的 nextElement() 方法返回的第一个节点是此节点。

通过插入、移除或移动节点修改树可以使修改前创建的任何枚举无效。

返回:
按广度优先的顺序遍历树的一个枚举
另请参见:
depthFirstEnumeration()

depthFirstEnumeration

public Enumeration depthFirstEnumeration()
创建并返回一个枚举,该枚举按深度优先的顺序遍历以此节点为根的子树。由枚举的 nextElement() 方法返回的第一个节点是最左边的叶节点。这与后序遍历相同。

通过插入、移除或移动节点修改树可以使修改前创建的任何枚举无效。

返回:
按深度优先的顺序遍历树的一个枚举
另请参见:
breadthFirstEnumeration(), postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration pathFromAncestorEnumeration(TreeNode ancestor)
创建并返回沿着从 ancestor 到此节点的路径的一个枚举。枚举的 nextElement() 方法首先返回 ancestor,然后返回作为此节点祖先的 ancestor 的子节点,依此类推,最后返回此节点。创建枚举所花费的时间是 O(m),其中 m 是此节点和 ancestor(包含)之间的节点数。每个 nextElement() 消息的花费都是 O(1)。

通过插入、移除或移动节点修改树可以使修改前创建的任何枚举无效。

返回:
一个枚举,它在从此节点的祖先到此节点的路径上
抛出:
IllegalArgumentException - 如果 ancestor 不是此节点的祖先
另请参见:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode aNode)
如果 aNode 是此节点的子节点,则返回 true。如果 aNode 为 null,则此方法返回 false。

返回:
如果 aNode 为此节点的子节点,则返回 true;如果 aNode 为 null,则返回 false

getFirstChild

public TreeNode getFirstChild()
返回此节点的第一个子节点。如果此节点没有子节点,则抛出 NoSuchElementException。

返回:
此节点的第一个子节点
抛出:
NoSuchElementException - 如果此节点没有子节点

getLastChild

public TreeNode getLastChild()
返回此节点的最后一个子节点。如果此节点没有子节点,则抛出 NoSuchElementException。

返回:
此节点的最后一个子节点
抛出:
NoSuchElementException - 如果此节点没有子节点

getChildAfter

public TreeNode getChildAfter(TreeNode aChild)
返回此节点的子节点数组中刚好跟在 aChild 之后的子节点,它必须是此节点的子节点。如果 aChild 是最后一个子节点,则返回 null。此方法对此节点的子节点执行线性搜索,以查找 aChild ,并且花费时间为 O(n),其中 n 表示子节点数;要遍历整个子节点数组,请改用枚举。

返回:
此节点的子节点,它刚好跟在 aChild 之后
抛出:
IllegalArgumentException - 如果 aChild 为 null,或者不是此节点的子节点
另请参见:
children

getChildBefore

public TreeNode getChildBefore(TreeNode aChild)
返回此节点的子节点数组中刚好在 aChild 之前的子节点,它必须是此节点的子节点。如果 aChild 是第一个子节点,则返回 null。此方法对此节点的子节点执行线性搜索,以查找 aChild ,并且花费时间为 O(n) ,其中 n 表示子节点数。

返回:
此节点的子节点,它刚好在 aChild 之前
抛出:
IllegalArgumentException - 如果 aChild 为 null,或者不是此节点的子节点

isNodeSibling

public boolean isNodeSibling(TreeNode anotherNode)
如果 anotherNode 是此节点的兄弟节点(与此节点共享同一父节点),则返回 true。节点是其本身的兄弟节点。如果 anotherNode 为 null,则返回 false。

参数:
anotherNode - 测试其是否为此节点的兄弟节点
返回:
如果 anotherNode 是此节点的兄弟节点,则返回 true

getSiblingCount

public int getSiblingCount()
返回此节点的兄弟节点数。节点是其本身的兄弟节点(如果它没有父节点,或者没有兄弟节点,则此方法返回 1)。

返回:
此节点的兄弟节点数

getNextSibling

public DefaultMutableTreeNode getNextSibling()
返回父节点的子节点数组中此节点的下一个兄弟节点。如果此节点没有父节点,或者是父节点的最后一个子节点,则返回 null。此方法执行线性搜索,花费时间为 O(n),其中 n 表示子节点数;要遍历整个数组,请改用父节点的子节点枚举。

返回:
此节点的兄弟节点,它刚好跟在此节点之后
另请参见:
children

getPreviousSibling

public DefaultMutableTreeNode getPreviousSibling()
返回父节点的子节点数组中此节点的前一个兄弟节点。如果此节点没有父节点,或者是父节点的第一个子节点,则返回 null。此方法执行线性搜索,花费时间为 O(n),其中 n 表示子节点数。

返回:
此节点的兄弟节点,它刚好在此节点之前

isLeaf

public boolean isLeaf()
如果此节点没有子节点,则返回 true。要区分没有子节点的节点和不能 拥有子节点的节点(例如,区分空目录中的文件),请将此方法与 getAllowsChildren 联合使用

指定者:
接口 TreeNode 中的 isLeaf
返回:
如果此节点没有子节点,则返回 true
另请参见:
getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode getFirstLeaf()
查找并返回为此节点后代的第一个叶节点,即此节点或其第一个子节点的第一个叶节点。如果它是叶节点,则返回此节点。

返回:
以此节点为根的子树中的第一个叶节点
另请参见:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()
查找并返回为此节点后代的最后一个叶节点,即此节点或其最后一个子节点的最后一个叶节点。如果它是叶节点,则返回此节点。

返回:
以此节点为根的子树中的最后一个叶节点
另请参见:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode getNextLeaf()
返回此节点后面的叶节点,如果此节点是树中的最后一个叶节点,则返回 null。

MutableNode 接口的此实现中,此操作效率非常低。为了确定下一个节点,此方法首先在父节点的子节点列表中执行线性搜索,以便找到当前节点。

该实现使该操作适合于从已知位置开始的简短遍历。但是,要遍历树中的所有叶节点,您应使用 depthFirstEnumeration 来枚举树中的节点,并对每个节点执行 isLeaf 确定哪些是叶节点。

返回:
返回此节点之后的下一个叶节点
另请参见:
depthFirstEnumeration(), isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode getPreviousLeaf()
返回此节点之前的叶节点,如果此节点是树中的第一个叶节点,则返回 null。

MutableNode 接口的此实现中,此操作效率非常低。为了确定前一个节点,此方法首先在父节点的子节点列表中执行线性搜索,以便找到当前节点。

该实现使得操作适合于从已知位置开始的简短遍历。但是,要遍历树中的所有叶节点,您应使用 depthFirstEnumeration 来枚举树中的节点,并对每个节点执行 isLeaf 确定哪些是叶节点。

返回:
返回此节点之前的叶节点
另请参见:
depthFirstEnumeration(), isLeaf()

getLeafCount

public int getLeafCount()
返回为此节点后代的叶节点总数。如果此节点是叶节点,则返回 1。此方法花费时间为 O(n),其中 n 表示此节点的后代数。

返回:
此节点下面的叶节点数
另请参见:
isNodeAncestor(javax.swing.tree.TreeNode)

toString

public String toString()
返回将 toString() 发送到此节点的用户对象的结果,如果此节点没有用户对象,则返回 null。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。
另请参见:
getUserObject()

clone

public Object clone()
重写以复制 public。返回对此节点的浅表复制;新的节点没有父节点或子节点,但具有对同一用户对象(如果有)的引用。

覆盖:
Object 中的 clone
返回:
此节点的副本
另请参见:
Cloneable

JavaTM Platform
Standard Ed. 6

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

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