Module  java.desktop
软件包  javax.swing.tree

Class 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返回的对象。 JTreeDefaultTreeModel配对时,路径的元素为TreeNode 以下示例说明从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在各个JTree内部创建了TreePath ,所以通常TreePathTreePath并与JTree TreePath使用。

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

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

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

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

      • TreePath

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

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

        protected TreePath​(TreePath parent,
                           Object lastPathComponent)
        使用指定的父元素和元素创建一个 TreePath
        参数
        parent - 指向父 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与指定的对象进行比较。 这将返回true如果o是一个TreePath具有完全相同的元素(由路径的每个元素使用equals确定)。
        重写:
        equalsObject
        参数
        o - 要比较的对象
        结果
        如果该对象与obj参数相同, true ; 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​()
        返回显示和标识此对象属性的字符串。
        重写:
        toStringObject
        结果
        a String representation of this object