模块 java.desktop

类 TreePath

java.lang.Object
javax.swing.tree.TreePath
所有已实现的接口:
Serializable

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

TreePathJTree 和相关类广泛使用。例如,JTree 将选择表示为 TreePath 的数组。当与 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());
  Object myObject= selectedNode.getUserObject();
 
子类通常只需要覆盖 getLastPathComponentgetParentPath 。由于 JTree 在不同点内部创建 TreePath ,因此将 TreePath 子类化并与 JTree 一起使用通常没有用。

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

有关使用树路径的更多信息和示例,请参阅 The Java Tutorial. 中的 如何使用树木

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

  • 构造方法详细信息

    • TreePath

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

      public TreePath(Object  lastPathComponent)
      创建一个包含单个元素的 TreePath。这用于构造一个 TreePath 标识根。
      参数:
      lastPathComponent - 根
      抛出:
      IllegalArgumentException - 如果 lastPathComponentnull
      参见:
    • 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)
      返回指定索引处的路径元素。
      参数:
      index - 请求的元素的索引
      返回:
      指定索引处的元素
      抛出:
      IllegalArgumentException - 如果索引超出此路径的范围
    • equals

      public boolean equals(Object  o)
      将此 TreePath 与指定对象进行比较。如果 o 是具有完全相同元素的 TreePath(通过在路径的每个元素上使用 equals 确定),则返回 true
      重写:
      equals 在类 Object
      参数:
      o - 要比较的对象
      返回:
      true 如果此对象与 obj 参数相同; false否则。
      参见:
    • hashCode

      public int hashCode()
      返回此 TreePath 的哈希码。 TreePath 的哈希码是路径中最后一个元素的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      对象的哈希码
      参见:
    • isDescendant

      public boolean isDescendant(TreePath  aTreePath)
      如果 aTreePath 是此 TreePath 的后代,则返回 true。如果 P1 包含构成 P2's 路径的所有元素,则 TreePath P1TreePath P2 的后代。例如,如果此对象的路径为 [a, b],而 aTreePath 的路径为 [a, b, c],则 aTreePath 是此对象的后代。但是,如果 aTreePath 具有路径 [a],则它不是该对象的后代。根据此定义,TreePath 始终被视为其自身的后代。也就是说,aTreePath.isDescendant(aTreePath) 返回 true
      参数:
      aTreePath - 要检查的 TreePath
      返回:
      如果 aTreePath 是此路径的后代,则为真
    • pathByAddingChild

      public TreePath  pathByAddingChild(Object  child)
      返回包含此路径的所有元素加上 child 的新路径。 child 是新创建的 TreePath 的最后一个元素。
      参数:
      child - 要添加的路径元素
      返回:
      包含此路径的所有元素加上 child 的新路径
      抛出:
      NullPointerException - 如果 childnull
    • getParentPath

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

      public String  toString()
      返回显示和标识此对象属性的字符串。
      重写:
      toString 在类 Object
      返回:
      此对象的字符串表示形式