java.lang.Object
javax.swing.tree.TreePath
- 所有已实现的接口:
-
Serializable
TreePath
表示一个对象数组,用于唯一标识树中节点的路径。数组的元素按照根节点作为数组的第一个元素进行排序。例如,文件系统上的文件根据父目录数组和文件名进行唯一标识。路径/tmp/foo/bar
可以被表示为一个TreePath
,如new TreePath(new Object[] {"tmp", "foo", "bar"})
。
TreePath
被JTree
及相关类广泛使用。例如,JTree
将选择表示为TreePath
数组。当与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()); Object myObject= selectedNode.getUserObject();子类通常只需要重写
getLastPathComponent
和getParentPath
。由于JTree
在内部在各个点创建TreePath
,因此通常不适合对TreePath
进行子类化并与JTree
一起使用。
虽然TreePath
是可序列化的,但如果路径的任何元素不可序列化,则会抛出NotSerializableException
。
有关更多信息和使用树路径的示例,请参阅The Java Tutorial中的How to Use Trees。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans
包中。请参阅XMLEncoder
。
-
Constructor Summary
ModifierConstructorDescriptionprotected
TreePath()
创建一个空的TreePath
。创建包含单个元素的TreePath
。从数组创建TreePath
。protected
从数组创建TreePath
。protected
使用指定的父级和元素创建TreePath
。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
将此TreePath
与指定对象进行比较。返回此路径的最后一个元素。返回父级的TreePath
。Object[]
getPath()
返回此TreePath
的元素的有序数组。getPathComponent
(int index) 返回指定索引处的路径元素。int
返回路径中的元素数。int
hashCode()
返回此TreePath
的哈希码。boolean
isDescendant
(TreePath aTreePath) 如果aTreePath
是此TreePath
的后代,则返回true。pathByAddingChild
(Object child) 返回包含此路径的所有元素以及child
的新路径。toString()
返回显示和标识此对象属性的字符串。
-
Constructor Details
-
TreePath
从数组创建TreePath
。数组唯一标识到节点的路径。- 参数:
-
path
- 表示节点路径的对象数组 - 抛出:
-
IllegalArgumentException
- 如果path
为null
、空或包含null
值
-
TreePath
创建包含单个元素的TreePath
。用于构造标识根节点的TreePath
。- 参数:
-
lastPathComponent
- 根节点 - 抛出:
-
IllegalArgumentException
- 如果lastPathComponent
为null
- 参见:
-
TreePath
使用指定的父级和元素创建TreePath
。- 参数:
-
parent
- 父级路径,或null
表示根节点 -
lastPathComponent
- 最后的路径元素 - 抛出:
-
IllegalArgumentException
- 如果lastPathComponent
为null
-
TreePath
从数组创建TreePath
。返回的TreePath
表示数组中从0
到length - 1
的元素。此构造函数在内部使用,通常在子类外部不太有用。
- 参数:
-
path
- 创建TreePath
的数组 -
length
- 用于创建TreePath
的path
中元素的数量 - 抛出:
-
NullPointerException
- 如果path
为null
-
ArrayIndexOutOfBoundsException
- 如果length - 1
超出数组范围 -
IllegalArgumentException
- 如果0
到length - 1
中的任何元素为null
-
TreePath
protected TreePath()创建一个空的TreePath
。为以不同方式表示路径的子类提供。使用此构造函数的子类必须重写getLastPathComponent
和getParentPath
。
-
-
Method Details
-
getPath
返回此TreePath
的元素的有序数组。第一个元素是根节点。- 返回:
-
此
TreePath
中元素的数组
-
getLastPathComponent
返回此路径的最后一个元素。- 返回:
- 路径中的最后一个元素
-
getPathCount
public int getPathCount()返回路径中的元素数。- 返回:
- 路径中的元素数
-
getPathComponent
返回指定索引处的路径元素。- 参数:
-
index
- 请求的元素的索引 - 返回:
- 指定索引处的元素
- 抛出:
-
IllegalArgumentException
- 如果索引超出此路径的范围
-
equals
将此TreePath
与指定对象进行比较。如果o
是具有完全相同元素的TreePath
(通过对路径的每个元素使用equals
来确定)则返回true
。 -
hashCode
public int hashCode()返回此TreePath
的哈希码。TreePath
的哈希码是路径中最后一个元素的哈希码。 -
isDescendant
如果aTreePath
是此TreePath
的后代,则返回true
。如果P1
包含构成P2
路径的所有元素,则TreePath
P1
是TreePath
P2
的后代。例如,如果此对象具有路径[a, b]
,而aTreePath
具有路径[a, b, c]
,则aTreePath
是此对象的后代。但是,如果aTreePath
具有路径[a]
,则它不是此对象的后代。根据此定义,TreePath
始终被视为其自身的后代。也就是说,aTreePath.isDescendant(aTreePath)
返回true
。- 参数:
-
aTreePath
- 要检查的TreePath
- 返回:
-
如果
aTreePath
是此路径的后代,则返回true
-
pathByAddingChild
返回包含此路径的所有元素以及child
的新路径。child
是新创建的TreePath
的最后一个元素。- 参数:
-
child
- 要添加的路径元素 - 返回值:
-
包含此路径所有元素以及
child
的新路径 - 抛出:
-
NullPointerException
- 如果child
为null
-
getParentPath
返回父节点的TreePath
。返回null
表示这是根节点。- 返回值:
- 父路径
-
toString
返回显示和标识此对象属性的字符串。
-