- java.lang.Object
-
- javax.swing.tree.TreePath
-
- All Implemented Interfaces:
-
Serializable
public class TreePath extends Object implements Serializable
TreePath
表示唯一标识树中节点的路径的对象数组。 数组的元素以root为单位,作为数组的第一个元素。 例如,文件系统上的一个文件是基于父目录的数组和文件的名称来唯一标识的。 路径/tmp/foo/bar
可以由TreePath
表示为new TreePath(new Object[] {"tmp", "foo", "bar"})
。TreePath
被广泛用于JTree
和相关类。 例如,JTree
表示选择为TreePath
s的数组。 当与JTree
使用时,路径的元素是从TreeModel
返回的对象。 当JTree
与DefaultTreeModel
配对时,路径的元素为TreeNode
。 以下示例说明从JTree
的选择中提取用户对象:DefaultMutableTreeNode root = ...; DefaultTreeModel model = new DefaultTreeModel(root); JTree tree = new JTree(model); ... TreePath selectedPath = tree.getSelectionPath(); DefaultMutableTreeNode selectedNode = ((DefaultMutableTreeNode)selectedPath.getLastPathComponent()). getUserObject();
子类通常只需覆盖getLastPathComponent
和getParentPath
。 由于JTree
在各个JTree
内部创建了TreePath
,所以通常TreePath
类TreePath
并与JTree
TreePath
使用。虽然
TreePath
是可序列化的,NotSerializableException
如果路径的任何元素不可序列化,则抛出NotSerializableException
。有关使用树路径的更多信息和示例,请参阅Java Tutorial中的 How to Use Trees 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
TreePath()
创建一个空的TreePath
。TreePath(Object lastPathComponent)
创建一个包含单个元素的TreePath
。TreePath(Object[] path)
从数组中创建一个TreePath
。protected
TreePath(Object[] path, int length)
从数组中创建一个TreePath
。protected
TreePath(TreePath parent, Object lastPathComponent)
使用指定的父元素和元素创建一个TreePath
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
equals(Object o)
将此TreePath
与指定的对象进行比较。Object
getLastPathComponent()
返回此路径的最后一个元素。TreePath
getParentPath()
返回父母的TreePath
。Object[]
getPath()
返回此TreePath
的元素的有序数组。Object
getPathComponent(int index)
返回指定索引处的path元素。int
getPathCount()
返回路径中的元素数。int
hashCode()
返回此TreePath
的哈希码。boolean
isDescendant(TreePath aTreePath)
如果aTreePath
是这个TreePath
的后代,则返回true。TreePath
pathByAddingChild(Object child)
返回一个包含此路径的所有元素的新路径加上child
。String
toString()
返回显示和标识此对象属性的字符串。
-
-
-
构造方法详细信息
-
TreePath
@ConstructorProperties("path") public TreePath(Object[] path)
从数组中创建一个TreePath
。 数组唯一标识节点的路径。- 参数
-
path
- 表示节点路径的对象数组 - 异常
-
IllegalArgumentException
- 如果path
是null
,null
空,或包含null
值
-
TreePath
public TreePath(Object lastPathComponent)
创建一个包含单个元素的TreePath
。 这用于构造一个识别根的TreePath
。- 参数
-
lastPathComponent
- 根 - 异常
-
IllegalArgumentException
- 如果lastPathComponent
是null
- 另请参见:
-
TreePath(Object[])
-
TreePath
protected TreePath(TreePath parent, Object lastPathComponent)
使用指定的父元素和元素创建一个TreePath
。- 参数
-
parent
- 指向父parent
的路径,或null
表示根 -
lastPathComponent
- 最后一个路径元素 - 异常
-
IllegalArgumentException
- 如果lastPathComponent
是null
-
TreePath
protected TreePath(Object[] path, int length)
从数组中创建一个TreePath
。 返回的TreePath
表示阵列的元素从0
到length - 1
。这个构造函数在内部使用,一般在子类之外是无用的。
- 参数
-
path
- 数组创建TreePath
-
length
- 识别path
中创建TreePath
的元素数 - 异常
-
NullPointerException
- 如果path
是null
-
ArrayIndexOutOfBoundsException
- 如果length - 1
在阵列的范围之外 -
IllegalArgumentException
- 如果任何从0
到length - 1
的元素是null
-
TreePath
protected TreePath()
创建一个空的TreePath
。 这是为以不同方式表示路径的子类提供的。 使用此构造函数的子类必须覆盖getLastPathComponent
和getParentPath
。
-
-
方法详细信息
-
getPath
public Object[] getPath()
返回此TreePath
元素的有序数组。 第一个元素是根。- 结果
-
这个
TreePath
中的元素的数组
-
getLastPathComponent
public Object getLastPathComponent()
返回此路径的最后一个元素。- 结果
- 路径中的最后一个元素
-
getPathCount
public int getPathCount()
返回路径中的元素数。- 结果
- 路径中的元素数量
-
getPathComponent
public Object getPathComponent(int index)
返回指定索引处的path元素。- 参数
-
index
- 请求的元素的索引 - 结果
- 指定索引处的元素
- 异常
-
IllegalArgumentException
- 如果索引超出此路径的范围
-
equals
public boolean equals(Object o)
将此TreePath
与指定的对象进行比较。 这将返回true
如果o
是一个TreePath
具有完全相同的元素(由路径的每个元素使用equals
确定)。- 重写:
-
equals
在Object
- 参数
-
o
- 要比较的对象 - 结果
-
如果该对象与obj参数相同,
true
;false
否则。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此TreePath
的哈希码。TreePath
的哈希码是路径中最后一个元素的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 该对象的hashCode
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
isDescendant
public boolean isDescendant(TreePath aTreePath)
如果aTreePath
是这个TreePath
的后代,则返回true。 一个TreePath
P1
是的后裔TreePath
P2
如果P1
包含所有构成元素P2's
路径。 例如,如果此对象具有路径[a, b]
,并且aTreePath
具有路径[a, b, c]
,则aTreePath
是此对象的后代。 但是,如果aTreePath
具有路径[a]
,那么它不是此对象的后代。 通过这个定义,一个TreePath
一直被认为是自己的后裔。 也就是说,aTreePath.isDescendant(aTreePath)
返回true
。- 参数
-
aTreePath
- 要查询的TreePath
- 结果
-
如果
aTreePath
是此路径的后代,aTreePath
true
-
pathByAddingChild
public TreePath pathByAddingChild(Object child)
返回一条包含此路径的所有元素的新路径加上child
。child
是新创建的TreePath
的最后一个元素。- 参数
-
child
- 要添加的路径元素 - 结果
-
一条包含此路径的所有元素的新路径加上
child
- 异常
-
NullPointerException
- 如果child
是null
-
getParentPath
public TreePath getParentPath()
返回父母的TreePath
。 返回值为null
表示这是根节点。- 结果
- 父路径
-
-