DefaultMutableTreeNode is a general-purpose node in a tree data
structure.
For examples of using default mutable tree nodes, see
How to Use Trees
in The Java Tutorial.
A tree node may have at most one parent and 0 or more children.
DefaultMutableTreeNode provides operations for examining and modifying a
node's parent and children and also operations for examining the tree that
the node is a part of. A node's tree is the set of all nodes that can be
reached by starting at the node and following all the possible links to
parents and children. A node with no parent is the root of its tree; a
node with no children is a leaf. A tree may consist of many subtrees,
each node acting as the root for its own subtree.
This class provides enumerations for efficiently traversing a tree or
subtree in various orders or for following the path between two nodes.
A DefaultMutableTreeNode may also hold a reference to a user object, the
use of which is left to the user. Asking a DefaultMutableTreeNode for its
string representation with toString() returns the string
representation of its user object.
This is not a thread safe class.If you intend to use a DefaultMutableTreeNode (or a tree of TreeNodes) in more than one thread, you need to do your own synchronizing. A good convention to adopt is synchronizing on the root node of a tree.
While DefaultMutableTreeNode implements the MutableTreeNode interface and will allow you to add in any implementation of MutableTreeNode not all of the methods in DefaultMutableTreeNode will be applicable to all MutableTreeNodes implementations. Especially with some of the enumerations that are provided, using some of these methods assumes the DefaultMutableTreeNode contains only DefaultMutableNode instances. All of the TreeNode/MutableTreeNode methods will behave as defined no matter what implementations are added.
Warning
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeans
has been added to the java.beans package.
Please see java..
MutableTreeNode
| Modifier and Type | Class and Description |
|---|---|
| pack-priv static class | |
| pack-priv static class | |
| pack-priv static class | |
| private static class |
| Modifier and Type | Field and Description |
|---|---|
| protected boolean | allowsChildren
true if the node is able to have children |
| protected Vector | children
array of children, may be null if this node has no children |
| public static final Enumeration | EMPTY_ENUMERATION
An enumeration that is always empty. |
| protected MutableTreeNode | parent
this node's parent, or null if this node has no parent |
| private static final long | serialVersionUID
Use serialVersionUID from JDK 1.7 for interoperability. |
| protected transient Object | userObject
optional user object |
| Access | Constructor and Description |
|---|---|
| public | DefaultMutableTreeNode()
Creates a tree node that has no parent and no children, but which allows children. |
| public | DefaultMutableTreeNode(Object
an Object provided by the user that constitutes
the node's data userObject)Creates a tree node with no parent, no children, but which allows children, and initializes it with the specified user object. |
| public | DefaultMutableTreeNode(Object
an Object provided by the user that constitutes
the node's data userObject, boolean if true, the node is allowed to have child
nodes -- otherwise, it is always a leaf node allowsChildren)Creates a tree node with no parent, no children, initialized with the specified user object, and that allows children only if specified. |
| Modifier and Type | Method and Description |
|---|---|
| public void | add(MutableTreeNode
node to add as a child of this node newChild)Removes |
| public Enumeration | Returns: an enumeration for traversing the tree in breadth-first orderCreates and returns an enumeration that traverses the subtree rooted at this node in breadth-first order. |
| public Enumeration | Returns: an Enumeration of this node's childrenImplements javax. Creates and returns a forward-order enumeration of this node's children. |
| public Object | Returns: a copy of this nodeOverrides java. Overridden to make clone public. |
| public Enumeration | Returns: an enumeration for traversing the tree in depth-first orderCreates and returns an enumeration that traverses the subtree rooted at this node in depth-first order. |
| public boolean | Returns: true if this node allows children, else falseImplements javax. Returns true if this node is allowed to have children. |
| public TreeNode | Returns: the child of this node that immediately followsaChildthe child node to look for next child after it aChild)Returns the child in this node's child array that immediately
follows |
| public TreeNode | Returns: the TreeNode in this node's child array at the specified indexan index into this node's child array index)Implements javax. Returns the child at the specified index in this node's child array. |
| public TreeNode | Returns: the child of this node that immediately precedesaChildthe child node to look for previous child before it aChild)Returns the child in this node's child array that immediately
precedes |
| public int | Returns: an int giving the number of children of this nodeImplements javax. Returns the number of children of this node. |
| public int | Returns: the depth of the tree whose root is this nodeReturns the depth of the tree rooted at this node -- the longest distance from this node to a leaf. |
| public TreeNode | |
| public DefaultMutableTreeNode | Returns: the first leaf in the subtree rooted at this nodeFinds and returns the first leaf that is a descendant of this node -- either this node or its first child's first leaf. |
| public int | Returns: an int giving the index of the node in this node's child array, or-1 if the specified node is a not
a child of this nodethe TreeNode to search for among this node's children aChild)Implements javax. Returns the index of the specified child in this node's child array. |
| public TreeNode | |
| public DefaultMutableTreeNode | Returns: the last leaf in the subtree rooted at this nodeFinds and returns the last leaf that is a descendant of this node -- either this node or its last child's last leaf. |
| public int | Returns: the number of leaves beneath this nodeReturns the total number of leaves that are descendants of this node. |
| public int | Returns: the number of levels above this nodeReturns the number of levels above this node -- the distance from the root to this node. |
| public DefaultMutableTreeNode | Returns: returns the next leaf past this nodeReturns the leaf after this node or null if this node is the last leaf in the tree. |
| public DefaultMutableTreeNode | Returns: the node that follows this node in a preorder traversal, or null if this node is lastReturns the node that follows this node in a preorder traversal of this node's tree. |
| public DefaultMutableTreeNode | Returns: the sibling of this node that immediately follows this nodeReturns the next sibling of this node in the parent's children array. |
| public TreeNode | Returns: this node's parent TreeNode, or null if this node has no parentImplements javax. Returns this node's parent or null if this node has no parent. |
| public TreeNode[] | Returns: an array of TreeNode objects giving the path, where the first element in the path is the root and the last element is this node.Returns the path from the root, to get to this node. |
| protected TreeNode[] | Returns: an array of TreeNodes giving the path from the root to the specified nodethe TreeNode to get the path for aNode, int an int giving the number of steps already taken towards
the root (on recursive calls), used to size the returned array depth)Builds the parents of node up to and including the root node, where the original node is the last element in the returned array. |
| public DefaultMutableTreeNode | Returns: returns the leaf before this nodeReturns the leaf before this node or null if this node is the first leaf in the tree. |
| public DefaultMutableTreeNode | Returns: the node that precedes this node in a preorder traversal, or null if this node is the firstReturns the node that precedes this node in a preorder traversal of this node's tree. |
| public DefaultMutableTreeNode | Returns: the sibling of this node that immediately precedes this nodeReturns the previous sibling of this node in the parent's children array. |
| public TreeNode | Returns: the root of the tree that contains this nodeReturns the root of the tree that contains this node. |
| public TreeNode | Returns: nearest ancestor common to this node andaNode,
or null if nonenode to find common ancestor with aNode)Returns the nearest common ancestor to this node and |
| public int | Returns: the number of siblings of this nodeReturns the number of siblings of this node. |
| public Object | |
| public Object[] | Returns: the user object path, from the root, to get to this nodeReturns the user object path, from the root, to get to this node. |
| public void | insert(MutableTreeNode
the MutableTreeNode to insert under this node newChild, int the index in this node's child array
where this node is to be inserted childIndex)Implements javax. Removes |
| public boolean | Returns: true if this node has no childrenImplements javax. Returns true if this node has no children. |
| public boolean | Returns: true if this node is a descendant ofanotherNodenode to test as an ancestor of this node anotherNode)Returns true if |
| public boolean | Returns: true ifaNode is a child of this node; false if
aNode is nullthe node to determinate whether it is a child aNode)Returns true if |
| public boolean | Returns: true if this node is an ancestor ofanotherNodenode to test as descendant of this node anotherNode)Returns true if |
| public boolean | Returns: true ifaNode is in the same tree as this node;
false if aNode is nullnode to find common ancestor with aNode)Returns true if and only if |
| public boolean | Returns: true ifanotherNode is a sibling of this nodenode to test as sibling of this node anotherNode)Returns true if |
| public boolean | Returns: true if this node is the root of its treeReturns true if this node is the root of the tree. |
| public Enumeration | Returns: an enumeration for following the path from an ancestor of this node to this onethe node to start enumeration from ancestor)Creates and returns an enumeration that follows the path from
|
| public Enumeration | Returns: an enumeration for traversing the tree in postorderCreates and returns an enumeration that traverses the subtree rooted at this node in postorder. |
| public Enumeration | Returns: an enumeration for traversing the tree in preorderCreates and returns an enumeration that traverses the subtree rooted at this node in preorder. |
| private void | |
| public void | remove(int
the index in this node's child array
of the child to remove childIndex)Implements javax. Removes the child at the specified index from this node's children and sets that node's parent to null. |
| public void | remove(MutableTreeNode
a child of this node to remove aChild)Implements javax. Removes |
| public void | |
| public void | removeFromParent()
Implements javax. Removes the subtree rooted at this node from the tree, giving this node a null parent. |
| public void | setAllowsChildren(boolean
true if this node is allowed to have children allows)Determines whether or not this node is allowed to have children. |
| public void | setParent(MutableTreeNode
this node's new parent newParent)Implements javax. Sets this node's parent to |
| public void | setUserObject(Object
the Object that constitutes this node's
user-specified data userObject)Implements javax. Sets the user object for this node to |
| public String | toString()
Overrides java. Returns the result of sending |
| private void |