- java.lang.Object
-
- javax.swing.tree.DefaultMutableTreeNode
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,MutableTreeNode
,TreeNode
- 已知直接子类:
-
JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
ADefaultMutableTreeNode
是树状数据结构中的通用节点。 有关使用默认可变树节点的示例,请参阅Java教程中的 How to Use Trees 。树节点最多可能有一个父节点和0个或更多的子节点。
DefaultMutableTreeNode
提供了用于检查和修改节点的父和子节点的操作,以及检查节点是其中一部分的树的操作。 节点的树是通过从节点开始并跟随所有可能的链接到父母和子节点的所有节点的集合。 没有父节点的节点是其树的根; 没有孩子的节点是叶子。 树可以由许多子树组成,每个节点充当其子树的根。该类提供了用于以各种顺序有效地遍历树或子树的枚举,或用于跟踪两个节点之间的路径。 A
DefaultMutableTreeNode
还可以保存对用户对象的引用,其对用户的使用。 使用DefaultMutableTreeNode
询问DefaultMutableTreeNode
的字符串表示toString()
返回其用户对象的字符串表示形式。这不是一个线程安全的类。 如果您打算在多个线程中使用DefaultMutableTreeNode(或TreeNodes树),则需要自己进行同步。 一个很好的惯例是在树的根节点上进行同步。
虽然DefaultMutableTreeNode实现MutableTreeNode接口,并允许您添加MutableTreeNode的任何实现,但DefaultMutableTreeNode中的所有方法都不适用于所有MutableTreeNodes实现。 特别是提供了一些枚举,使用这些方法中的一些假定DefaultMutableTreeNode仅包含DefaultMutableNode实例。 所有的TreeNode / MutableTreeNode方法将按照定义的行为,无论添加什么实现。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 另请参见:
-
MutableTreeNode
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 protected boolean
allowsChildren
如果节点能够拥有子节点,则为trueprotected Vector<TreeNode>
children
如果此节点没有子节点,则可能为nullstatic Enumeration<TreeNode>
EMPTY_ENUMERATION
一个总是空的枚举。protected MutableTreeNode
parent
该节点的父节点,如果此节点没有父节点,则为nullprotected Object
userObject
可选的用户对象
-
构造方法摘要
构造方法 Constructor 描述 DefaultMutableTreeNode()
创建一个树节点,没有父节点,没有子节点,但它允许子节点。DefaultMutableTreeNode(Object userObject)
创建一个没有父进程,没有子节点,但允许子节点的树节点,并用指定的用户对象初始化它。DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
创建一个没有父进程的树节点,没有子节点,用指定的用户对象进行初始化,只有在指定的时候才允许子节点。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
add(MutableTreeNode newChild)
从其父项中删除newChild
,并将其添加到该节点的子数组的末尾,使其成为该节点的子节点。Enumeration<TreeNode>
breadthFirstEnumeration()
创建并返回以宽度优先顺序遍历以此节点为根的子树的枚举。Enumeration<TreeNode>
children()
创建并返回该节点的子节点的前向枚举。Object
clone()
覆盖使克隆公开。Enumeration<TreeNode>
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<TreeNode>
pathFromAncestorEnumeration(TreeNode ancestor)
创建并返回从ancestor
到此节点的路径ancestor
的枚举。Enumeration<TreeNode>
postorderEnumeration()
创建并返回在postorder中遍历此节点的子树的枚举。Enumeration<TreeNode>
preorderEnumeration()
创建并返回以预订方式遍历此节点的子树的枚举。void
remove(int childIndex)
从该节点的子节点删除指定索引处的子节点,并将该节点的父节点设置为null。void
remove(MutableTreeNode aChild)
从此节点的子数组中删除aChild
,给它一个空父项。void
removeAllChildren()
删除所有这个节点的孩子,将他们的父母设置为null。void
removeFromParent()
从树中除去根节点的子树,给这个节点一个空父。void
setAllowsChildren(boolean allows)
确定此节点是否允许有子节点。void
setParent(MutableTreeNode newParent)
将此节点的父节点设置为newParent
但不会更改父节点的子数组。void
setUserObject(Object userObject)
将此节点的用户对象设置为userObject
。String
toString()
返回向该节点的用户对象发送toString()
的结果,如果节点没有用户对象,则返回空字符串。
-
-
-
字段详细信息
-
EMPTY_ENUMERATION
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
一个总是空的枚举。 当请求枚举一个叶节点的子节点时使用此选项。
-
parent
protected MutableTreeNode parent
该节点的父节点,如果此节点没有父节点,则为null
-
userObject
protected transient Object userObject
可选的用户对象
-
allowsChildren
protected boolean allowsChildren
如果节点能够拥有子节点,则为true
-
-
构造方法详细信息
-
DefaultMutableTreeNode
public DefaultMutableTreeNode()
创建一个树节点,没有父节点,没有子节点,但它允许子节点。
-
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject)
创建一个没有父进程,没有子节点,但允许子节点的树节点,并用指定的用户对象初始化它。- 参数
-
userObject
- 由用户提供的构成节点数据的对象
-
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
创建一个没有父进程的树节点,没有子节点,用指定的用户对象进行初始化,只有在指定的时候才允许子节点。- 参数
-
userObject
- 由用户提供的构成节点数据的对象 -
allowsChildren
- 如果为true,则允许该节点具有子节点 - 否则它总是一个叶节点
-
-
方法详细信息
-
insert
public void insert(MutableTreeNode newChild, int childIndex)
从其当前父项(如果有父项)中删除newChild
,将子节点的父节点设置为此节点,然后将子节点添加到索引号为childIndex
节点的子数组。newChild
不能为空,不能是此节点的祖先。- Specified by:
-
insert
在接口MutableTreeNode
- 参数
-
newChild
- 在此节点下插入的MutableTreeNode -
childIndex
- 此节点的子阵列中要插入此节点的索引 - 异常
-
ArrayIndexOutOfBoundsException
- 如果childIndex
是超出范围 -
IllegalArgumentException
- 如果newChild
为空,或者是该节点的祖先 -
IllegalStateException
- 如果此节点不允许孩子 - 另请参见:
-
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
-
remove
public void remove(int childIndex)
从该节点的子节点删除指定索引处的子节点,并将该节点的父节点设置为null。 要删除的子节点必须是MutableTreeNode
。- Specified by:
-
remove
在接口MutableTreeNode
- 参数
-
childIndex
- 要删除的子节点的此节点的子数组中的索引 - 异常
-
ArrayIndexOutOfBoundsException
- 如果childIndex
超出范围
-
setParent
public void setParent(MutableTreeNode newParent)
将此节点的父节点设置为newParent
但不会更改父节点的子数组。 该方法从insert()
和remove()
调用,以重新分配一个孩子的父代,它不应该从其他地方消息。- Specified by:
-
setParent
在接口MutableTreeNode
- 参数
-
newParent
- 这个节点的新父
-
getParent
public TreeNode getParent()
返回此节点的父节点,如果此节点没有父节点,则返回null。
-
getChildAt
public TreeNode getChildAt(int index)
返回此节点的子数组中指定索引处的子节点。- Specified by:
-
getChildAt
在接口TreeNode
- 参数
-
index
- 此节点的子数组的索引 - 结果
- 该节点的TreeNode在指定索引的子数组中
- 异常
-
ArrayIndexOutOfBoundsException
- 如果index
超出范围
-
getChildCount
public int getChildCount()
返回此节点的子节点数。- Specified by:
-
getChildCount
在接口TreeNode
- 结果
- 一个int给出这个节点的子节点数
-
getIndex
public int getIndex(TreeNode aChild)
返回此节点的子数组中指定子节点的索引。 如果指定的节点不是此节点的子节点,则返回-1
。 该方法执行线性搜索,并且是O(n),其中n是子数。- Specified by:
-
getIndex
在接口TreeNode
- 参数
-
aChild
- 在该节点的子节点之间搜索的TreeNode - 结果
-
一个int给出该节点子节点中节点的索引,如果指定的节点不是此节点的子节点,
-1
- 异常
-
IllegalArgumentException
- 如果aChild
为空
-
children
public Enumeration<TreeNode> children()
创建并返回该节点的子节点的前向枚举。 修改此节点的子数组会使修改之前创建的所有子枚举失效。
-
setAllowsChildren
public void setAllowsChildren(boolean allows)
确定此节点是否允许有子节点。 如果allows
为false,则删除该节点的所有子节点。注意:默认情况下,一个节点允许孩子。
- 参数
-
allows
- 如果此节点允许有子节点,则为true
-
getAllowsChildren
public boolean getAllowsChildren()
如果该节点允许有子节点,则返回true。- Specified by:
-
getAllowsChildren
在接口TreeNode
- 结果
- 如果此节点允许孩子,则为true,否则为false
-
setUserObject
public void setUserObject(Object userObject)
将此节点的用户对象设置为userObject
。- Specified by:
-
setUserObject
在接口MutableTreeNode
- 参数
-
userObject
- 构成此节点的用户指定数据的对象 - 另请参见:
-
getUserObject()
,toString()
-
getUserObject
public Object getUserObject()
返回此节点的用户对象。- 结果
- 该对象由用户存储在此节点
- 另请参见:
-
setUserObject(java.lang.Object)
,toString()
-
removeFromParent
public void removeFromParent()
从树中除去根节点的子树,给这个节点一个空父。 如果此节点是其树的根,则不执行任何操作。- Specified by:
-
removeFromParent
在接口MutableTreeNode
-
remove
public void remove(MutableTreeNode aChild)
从此节点的子数组中删除aChild
,给它一个空父项。- Specified by:
-
remove
在接口MutableTreeNode
- 参数
-
aChild
- 此节点的子节点要删除 - 异常
-
IllegalArgumentException
- 如果aChild
为空或不是此节点的子节点
-
removeAllChildren
public void removeAllChildren()
删除所有这个节点的孩子,将他们的父母设置为null。 如果此节点没有子节点,此方法不执行任何操作。
-
add
public void add(MutableTreeNode newChild)
从其父项中删除newChild
,并将其添加到该节点的子数组的末尾,使其成为该节点的子节点。- 参数
-
newChild
- 作为此节点的子节点添加的节点 - 异常
-
IllegalArgumentException
- 如果newChild
为空 -
IllegalStateException
- 如果此节点不允许孩子 - 另请参见:
-
insert(javax.swing.tree.MutableTreeNode, int)
-
isNodeAncestor
public boolean isNodeAncestor(TreeNode anotherNode)
如果anotherNode
是此节点的祖先 - 如果是此节点,此节点的父节点或此节点的父节点的祖先,则返回true。 (请注意,节点被认为是自身的祖先。)如果anotherNode
为空,则此方法返回false。 此操作处于最差O(h),其中h是从根到该节点的距离。- 参数
-
anotherNode
- 要作为此节点的祖先进行测试的节点 - 结果
-
如果此节点是
anotherNode
的后代,anotherNode
- 另请参见:
-
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
的祖先,anotherNode
- 另请参见:
-
isNodeAncestor(javax.swing.tree.TreeNode)
,getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
-
getSharedAncestor
public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
返回此节点最近的共同祖先和aNode
。 如果不存在这样的祖先 - 如果此节点和aNode
在不同的树中,或者如果aNode
为空,则aNode
null。 节点被认为是自己的祖先。- 参数
-
aNode
- 找到共同祖先的节点 - 结果
-
该节点最常见的祖先和
aNode
,如果没有,aNode
null - 另请参见:
-
isNodeAncestor(javax.swing.tree.TreeNode)
,isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
-
isNodeRelated
public boolean isNodeRelated(DefaultMutableTreeNode aNode)
当且仅当aNode
与该节点在同一棵树中时返回true。 如果aNode
为空,则返回false。- 参数
-
aNode
- 查找共同祖先的节点 - 结果
-
如果
aNode
与该节点在同一棵树中,aNode
true; 如果aNode
为空,则为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。- 结果
- 用户对象路径,从根,到达这个节点
-
getRoot
public TreeNode getRoot()
返回包含此节点的树的根。 根是具有空父项的祖先。- 结果
- 包含此节点的树的根
- 另请参见:
-
isNodeAncestor(javax.swing.tree.TreeNode)
-
isRoot
public boolean isRoot()
如果此节点是树的根,则返回true。 根是树中唯一一个空父的节点; 每棵树只有一根根。- 结果
- 如果此节点是其树的根,则为true
-
getNextNode
public DefaultMutableTreeNode getNextNode()
在此节点的树的预序遍历中返回此节点后面的节点。 如果此节点是遍历的最后一个节点,则返回null。 这是遍历整个树的低效方法; 使用枚举,而不是。- 结果
- 在预订遍历中跟随此节点的节点,如果此节点为最后,则为null
- 另请参见:
-
preorderEnumeration()
-
getPreviousNode
public DefaultMutableTreeNode getPreviousNode()
在此节点的树的预序遍历中返回此节点之前的节点。 如果此节点是遍历的第一个节点 - 树的根,则返回null
。 这是遍历整个树的低效方法; 使用枚举,而不是。- 结果
- 预先遍历此节点之前的节点,如果此节点是第一个节点,则返回null
- 另请参见:
-
preorderEnumeration()
-
preorderEnumeration
public Enumeration<TreeNode> preorderEnumeration()
创建并返回以预订方式遍历此节点的子树的枚举。 由枚举的nextElement()
方法返回的第一个节点是此节点。通过插入,删除或移动节点来修改树,会使修改前创建的任何枚举失效。
- 结果
- 在预订中遍历树的枚举
- 另请参见:
-
postorderEnumeration()
-
postorderEnumeration
public Enumeration<TreeNode> postorderEnumeration()
创建并返回在postorder中遍历此节点的子树的枚举。 枚举的nextElement()
方法返回的第一个节点是最左边的叶。 这与深度优先遍历相同。通过插入,删除或移动节点来修改树,会使修改前创建的任何枚举失效。
- 结果
- 在后期遍历树的枚举
- 另请参见:
-
depthFirstEnumeration()
,preorderEnumeration()
-
breadthFirstEnumeration
public Enumeration<TreeNode> breadthFirstEnumeration()
创建并返回以宽度优先顺序遍历以此节点为根的子树的枚举。 这个节点是枚举nextElement()
方法返回的第一个节点。通过插入,删除或移动节点来修改树,会使修改前创建的任何枚举失效。
- 结果
- 以宽度优先顺序遍历树的枚举
- 另请参见:
-
depthFirstEnumeration()
-
depthFirstEnumeration
public Enumeration<TreeNode> depthFirstEnumeration()
创建并返回以深度优先顺序遍历以此节点为根的子树的枚举。 枚举的nextElement()
方法返回的第一个节点是最左边的叶。 这与后期遍历相同。通过插入,删除或移动节点来修改树,会使修改前创建的任何枚举失效。
- 结果
- 一个以深度顺序遍历树的枚举
- 另请参见:
-
breadthFirstEnumeration()
,postorderEnumeration()
-
pathFromAncestorEnumeration
public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
创建并返回从ancestor
到此节点的路径ancestor
的枚举。 枚举的nextElement()
方法首先返回ancestor
,然后是该节点的祖先的ancestor
的子节点,等等,最后返回此节点。 枚举的创建是O(m)其中m是此节点与ancestor
之间的节ancestor
(包括端点)。 每条nextElement()
消息都是O(1)。通过插入,删除或移动节点来修改树,会使修改前创建的任何枚举失效。
- 参数
-
ancestor
- 从中开始枚举的节点 - 结果
- 跟踪从这个节点的祖先到这个节点的路径的枚举
- 异常
-
IllegalArgumentException
- 如果ancestor
不是此节点的祖先 - 另请参见:
-
isNodeAncestor(javax.swing.tree.TreeNode)
,isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
-
isNodeChild
public boolean isNodeChild(TreeNode aNode)
如果aNode
是此节点的子节点,则返回true。 如果aNode
为null,则此方法返回false。- 参数
-
aNode
- 确定它是否是一个小孩的节点 - 结果
-
如果
aNode
是此节点的子节点,aNode
true; 如果aNode
为空,则为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
- 子节点查找下一个小孩后 - 结果
-
这个节点的小孩紧随其后的是
aChild
- 异常
-
IllegalArgumentException
- 如果aChild
为空或不是此节点的子节点 - 另请参见:
-
children
-
getChildBefore
public TreeNode getChildBefore(TreeNode aChild)
返回该节点的子阵列中紧靠在aChild
之前的子节点,它必须是此节点的子节点。 如果aChild
是第一个孩子,则返回null。 该方法对该节点的子节点进行线性搜索,为aChild
,为O(n),其中n为子节点数。- 参数
-
aChild
- 子节点在之前查找之前的孩子 - 结果
-
该节点的子节点紧接在
aChild
之前 - 异常
-
IllegalArgumentException
- 如果aChild
为空或不是此节点的子节点
-
isNodeSibling
public boolean isNodeSibling(TreeNode anotherNode)
如果anotherNode
是与此节点(具有相同的父节点)的兄弟anotherNode
则返回true。 一个节点是自己的兄弟姐妹。 如果anotherNode
为null,则返回false。- 参数
-
anotherNode
- 要测试此节点的节点的节点 - 结果
-
如果
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
- Specified by:
-
isLeaf
在接口TreeNode
- 结果
- 如果此节点没有子节点,则为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()
的结果,如果节点没有用户对象,则返回空字符串。- 重写:
-
toString
在Object
- 结果
- 对象的字符串表示形式。
- 另请参见:
-
getUserObject()
-
-