模块  java.desktop
软件包  javax.swing.tree

Class TreePath

  • 实现的所有接口
    Serializable

    public class TreePath
    extends Object
    implements Serializable
    TreePath表示唯一标识树中节点的路径的对象数组。 数组的元素以root作为数组的第一个元素排序。 例如,基于父目录数组和文件名唯一地标识文件系统上的文件。 路径/tmp/foo/bar可以由TreePath表示为new TreePath(new Object[] {"tmp", "foo", "bar"})

    TreePathJTree及相关类别广泛使用。 例如, JTree将选择表示为TreePath s的数组。 JTree使用时,路径的元素是从TreeModel返回的对象。 JTreeDefaultTreeModel配对时,路径的元素为TreeNode s。 以下示例说明从JTree的选择中提取用户对象:

      DefaultMutableTreeNode root = ...;
       DefaultTreeModel model = new DefaultTreeModel(root);
       JTree tree = new JTree(model);
       ...
       TreePath selectedPath = tree.getSelectionPath();
       DefaultMutableTreeNode selectedNode =
           ((DefaultMutableTreeNode)selectedPath.getLastPathComponent()).
           getUserObject(); 
    子类通常只需要覆盖getLastPathComponentgetParentPath 由于JTree内部在各个点创建TreePath s,因此通常TreePathTreePath并与JTree TreePath使用。

    虽然TreePath是可序列化的, NotSerializableException如果路径的任何元素不可序列化,则抛出NotSerializableException

    有关使用树路径的更多信息和示例,请参阅The Java Tutorial中的 How to Use Trees

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    另请参见:
    Serialized Form
    • 构造方法详细信息

      • TreePath

        @ConstructorProperties("path")
        public TreePath​(Object[] path)
        从数组创建TreePath 该数组唯一标识节点的路径。
        参数
        path - 表示节点路径的对象数组
        异常
        IllegalArgumentException - 如果 pathnull ,为空,或包含 null
      • TreePath

        public TreePath​(Object lastPathComponent)
        创建包含单个元素的TreePath 这用于构造标识根的TreePath
        参数
        lastPathComponent - 根
        异常
        IllegalArgumentException - 如果 lastPathComponentnull
        另请参见:
        TreePath(Object[])
      • TreePath

        protected TreePath​(TreePath parent,
                           Object lastPathComponent)
        使用指定的父元素创建 TreePath
        参数
        parent - 父级的路径,或 null以指示根
        lastPathComponent - 最后一个路径元素
        异常
        IllegalArgumentException - 如果 lastPathComponentnull
      • TreePath

        protected TreePath​(Object[] path,
                           int length)
        从数组创建TreePath 返回的TreePath表示从0length - 1的数组元素。

        此构造函数在内部使用,通常在子类之外无用。

        参数
        path - 从中创建 TreePath的数组
        length - 标识 path用于创建 TreePath的元素数
        异常
        NullPointerException - 如果 pathnull
        ArrayIndexOutOfBoundsException - 如果 length - 1超出阵列范围
        IllegalArgumentException - 如果 0length - 1中的任何元素是 null
      • TreePath

        protected TreePath()
        创建一个空TreePath 这是为以不同方式表示路径的子类提供的。 使用此构造函数的子类必须覆盖getLastPathComponentgetParentPath
    • 方法详细信息

      • 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与指定的对象进行比较。 如果o是具有完全相同元素的TreePath (通过在路径的每个元素上使用equals确定),则返回true
        重写:
        equals在课堂上 Object
        参数
        o - 要比较的对象
        结果
        true如果此对象与obj参数相同; 否则为false
        另请参见:
        Object.hashCode()HashMap
      • 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 - 如果 childnull
      • getParentPath

        public TreePath getParentPath()
        返回父级的TreePath 返回值null表示这是根节点。
        结果
        父路径
      • toString

        public String toString()
        返回显示和标识此对象属性的字符串。
        重写:
        toString在课堂上 Object
        结果
        a String representation of this object