Class TreePath
- All Implemented Interfaces:
Serializable
public class TreePath extends Object implements Serializable
TreePath
represents an array of objects that uniquely identify the path to a node in a tree. The elements of the array are ordered with the root as the first element of the array. For example, a file on the file system is uniquely identified based on the array of parent directories and the name of the file. The path /tmp/foo/bar
could be represented by a TreePath
as new TreePath(new Object[] {"tmp", "foo", "bar"})
. TreePath
is used extensively by JTree
and related classes. For example, JTree
represents the selection as an array of TreePath
s. When used with JTree
, the elements of the path are the objects returned from the TreeModel
. When JTree
is paired with DefaultTreeModel
, the elements of the path are TreeNode
s. The following example illustrates extracting the user object from the selection of a JTree
:
DefaultMutableTreeNode root = ...; DefaultTreeModel model = new DefaultTreeModel(root); JTree tree = new JTree(model); ... TreePath selectedPath = tree.getSelectionPath(); DefaultMutableTreeNode selectedNode = ((DefaultMutableTreeNode)selectedPath.getLastPathComponent()). getUserObject();Subclasses typically need override only
getLastPathComponent
, and getParentPath
. As JTree
internally creates TreePath
s at various points, it's generally not useful to subclass TreePath
and use with JTree
. While TreePath
is serializable, a
NotSerializableException
is thrown if any elements of the path are not serializable.
For further information and examples of using tree paths, see How to Use Trees in The Java Tutorial.
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 XMLEncoder
.
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
protected |
Creates an empty TreePath . |
|
Creates a TreePath containing a single element. |
||
Creates a TreePath from an array. |
||
protected |
Creates a TreePath from an array. |
|
protected |
Creates a TreePath with the specified parent and element. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
boolean |
equals |
Compares this TreePath to the specified object. |
Object |
getLastPathComponent() |
Returns the last element of this path. |
TreePath |
getParentPath() |
Returns the TreePath of the parent. |
Object[] |
getPath() |
Returns an ordered array of the elements of this TreePath . |
Object |
getPathComponent |
Returns the path element at the specified index. |
int |
getPathCount() |
Returns the number of elements in the path. |
int |
hashCode() |
Returns the hash code of this TreePath . |
boolean |
isDescendant |
Returns true if aTreePath is a descendant of this TreePath . |
TreePath |
pathByAddingChild |
Returns a new path containing all the elements of this path plus child . |
String |
toString() |
Returns a string that displays and identifies this object's properties. |
Constructor Details
TreePath
@ConstructorProperties("path") public TreePath(Object[] path)
TreePath
from an array. The array uniquely identifies the path to a node.- Parameters:
-
path
- an array of objects representing the path to a node - Throws:
-
IllegalArgumentException
- ifpath
isnull
, empty, or contains anull
value
TreePath
public TreePath(Object lastPathComponent)
TreePath
containing a single element. This is used to construct a TreePath
identifying the root.- Parameters:
-
lastPathComponent
- the root - Throws:
-
IllegalArgumentException
- iflastPathComponent
isnull
- See Also:
TreePath
protected TreePath(TreePath parent, Object lastPathComponent)
TreePath
with the specified parent and element.- Parameters:
-
parent
- the path to the parent, ornull
to indicate the root -
lastPathComponent
- the last path element - Throws:
-
IllegalArgumentException
- iflastPathComponent
isnull
TreePath
protected TreePath(Object[] path, int length)
TreePath
from an array. The returned TreePath
represents the elements of the array from 0
to length - 1
. This constructor is used internally, and generally not useful outside of subclasses.
- Parameters:
-
path
- the array to create theTreePath
from -
length
- identifies the number of elements inpath
to create theTreePath
from - Throws:
-
NullPointerException
- ifpath
isnull
-
ArrayIndexOutOfBoundsException
- iflength - 1
is outside the range of the array -
IllegalArgumentException
- if any of the elements from0
tolength - 1
arenull
TreePath
protected TreePath()
TreePath
. This is provided for subclasses that represent paths in a different manner. Subclasses that use this constructor must override getLastPathComponent
, and getParentPath
.Method Details
getPath
public Object[] getPath()
TreePath
. The first element is the root.- Returns:
- an array of the elements in this
TreePath
getLastPathComponent
public Object getLastPathComponent()
- Returns:
- the last element in the path
getPathCount
public int getPathCount()
- Returns:
- the number of elements in the path
getPathComponent
public Object getPathComponent(int index)
- Parameters:
-
index
- the index of the element requested - Returns:
- the element at the specified index
- Throws:
-
IllegalArgumentException
- if the index is outside the range of this path
equals
public boolean equals(Object o)
TreePath
to the specified object. This returns true
if o
is a TreePath
with the exact same elements (as determined by using equals
on each element of the path).hashCode
public int hashCode()
TreePath
. The hash code of a TreePath
is the hash code of the last element in the path.isDescendant
public boolean isDescendant(TreePath aTreePath)
aTreePath
is a descendant of this TreePath
. A TreePath
P1
is a descendant of a TreePath
P2
if P1
contains all of the elements that make up P2's
path. For example, if this object has the path [a, b]
, and aTreePath
has the path [a, b, c]
, then aTreePath
is a descendant of this object. However, if aTreePath
has the path [a]
, then it is not a descendant of this object. By this definition a TreePath
is always considered a descendant of itself. That is, aTreePath.isDescendant(aTreePath)
returns true
.- Parameters:
-
aTreePath
- theTreePath
to check - Returns:
- true if
aTreePath
is a descendant of this path
pathByAddingChild
public TreePath pathByAddingChild(Object child)
child
. child
is the last element of the newly created TreePath
.- Parameters:
-
child
- the path element to add - Returns:
- a new path containing all the elements of this path plus
child
- Throws:
-
NullPointerException
- ifchild
isnull
getParentPath
public TreePath getParentPath()
TreePath
of the parent. A return value of null
indicates this is the root node.- Returns:
- the parent path
toString
public String toString()
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/tree/TreePath.html