所有类


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)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部