- java.lang.Object
-
- javax.swing.tree.TreePath
-
- All Implemented Interfaces:
Serializable
public class TreePath extends Object implements Serializable
TreePathrepresents 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/barcould be represented by aTreePathasnew TreePath(new Object[] {"tmp", "foo", "bar"}).TreePathis used extensively byJTreeand related classes. For example,JTreerepresents the selection as an array ofTreePaths. When used withJTree, the elements of the path are the objects returned from theTreeModel. WhenJTreeis paired withDefaultTreeModel, the elements of the path areTreeNodes. The following example illustrates extracting the user object from the selection of aJTree: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 onlygetLastPathComponent, andgetParentPath. AsJTreeinternally createsTreePaths at various points, it's generally not useful to subclassTreePathand use withJTree.While
TreePathis serializable, aNotSerializableExceptionis 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.beanspackage. Please seeXMLEncoder.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedTreePath()Creates an emptyTreePath.TreePath(Object lastPathComponent)Creates aTreePathcontaining a single element.TreePath(Object[] path)Creates aTreePathfrom an array.protectedTreePath(Object[] path, int length)Creates aTreePathfrom an array.protectedTreePath(TreePath parent, Object lastPathComponent)Creates aTreePathwith the specified parent and element.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)Compares thisTreePathto the specified object.ObjectgetLastPathComponent()Returns the last element of this path.TreePathgetParentPath()Returns theTreePathof the parent.Object[]getPath()Returns an ordered array of the elements of thisTreePath.ObjectgetPathComponent(int index)Returns the path element at the specified index.intgetPathCount()Returns the number of elements in the path.inthashCode()Returns the hash code of thisTreePath.booleanisDescendant(TreePath aTreePath)Returns true ifaTreePathis a descendant of thisTreePath.TreePathpathByAddingChild(Object child)Returns a new path containing all the elements of this path pluschild.StringtoString()Returns a string that displays and identifies this object's properties.
-
-
-
Constructor Detail
-
TreePath
@ConstructorProperties("path") public TreePath(Object[] path)
Creates aTreePathfrom 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- ifpathisnull, empty, or contains anullvalue
-
TreePath
public TreePath(Object lastPathComponent)
Creates aTreePathcontaining a single element. This is used to construct aTreePathidentifying the root.- Parameters:
lastPathComponent- the root- Throws:
IllegalArgumentException- iflastPathComponentisnull- See Also:
TreePath(Object[])
-
TreePath
protected TreePath(TreePath parent, Object lastPathComponent)
Creates aTreePathwith the specified parent and element.- Parameters:
parent- the path to the parent, ornullto indicate the rootlastPathComponent- the last path element- Throws:
IllegalArgumentException- iflastPathComponentisnull
-
TreePath
protected TreePath(Object[] path, int length)
Creates aTreePathfrom an array. The returnedTreePathrepresents the elements of the array from0tolength - 1.This constructor is used internally, and generally not useful outside of subclasses.
- Parameters:
path- the array to create theTreePathfromlength- identifies the number of elements inpathto create theTreePathfrom- Throws:
NullPointerException- ifpathisnullArrayIndexOutOfBoundsException- iflength - 1is outside the range of the arrayIllegalArgumentException- if any of the elements from0tolength - 1arenull
-
TreePath
protected TreePath()
Creates an emptyTreePath. This is provided for subclasses that represent paths in a different manner. Subclasses that use this constructor must overridegetLastPathComponent, andgetParentPath.
-
-
Method Detail
-
getPath
public Object[] getPath()
Returns an ordered array of the elements of thisTreePath. The first element is the root.- Returns:
- an array of the elements in this
TreePath
-
getLastPathComponent
public Object getLastPathComponent()
Returns the last element of this path.- Returns:
- the last element in the path
-
getPathCount
public int getPathCount()
Returns the number of elements in the path.- Returns:
- the number of elements in the path
-
getPathComponent
public Object getPathComponent(int index)
Returns the path element at the specified 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)
Compares thisTreePathto the specified object. This returnstrueifois aTreePathwith the exact same elements (as determined by usingequalson each element of the path).- Overrides:
equalsin classObject- Parameters:
o- the object to compare- Returns:
- boolean
trueif the object is the same as this objectfalseif it is different from this object. - See Also:
Object.hashCode()
-
hashCode
public int hashCode()
Returns the hash code of thisTreePath. The hash code of aTreePathis the hash code of the last element in the path.- Overrides:
hashCodein classObject- Returns:
- the hashCode for the object
- See Also:
Object.equals(java.lang.Object)
-
isDescendant
public boolean isDescendant(TreePath aTreePath)
Returns true ifaTreePathis a descendant of thisTreePath. ATreePathP1is a descendant of aTreePathP2ifP1contains all of the elements that make upP2'spath. For example, if this object has the path[a, b], andaTreePathhas the path[a, b, c], thenaTreePathis a descendant of this object. However, ifaTreePathhas the path[a], then it is not a descendant of this object. By this definition aTreePathis always considered a descendant of itself. That is,aTreePath.isDescendant(aTreePath)returnstrue.- Parameters:
aTreePath- theTreePathto check- Returns:
- true if
aTreePathis a descendant of this path
-
pathByAddingChild
public TreePath pathByAddingChild(Object child)
Returns a new path containing all the elements of this path pluschild.childis the last element of the newly createdTreePath.- Parameters:
child- the path element to add- Returns:
- a new path containing all the elements of this path
plus
child - Throws:
NullPointerException- ifchildisnull
-
getParentPath
public TreePath getParentPath()
Returns theTreePathof the parent. A return value ofnullindicates this is the root node.- Returns:
- the parent path
-
-