モジュール java.desktop
パッケージ javax.swing.tree

クラスTreePath

java.lang.Object
javax.swing.tree.TreePath
すべての実装されたインタフェース:
Serializable

public class TreePath extends Object implements Serializable
TreePathは、ツリー内のノードへのパスを一意に識別するオブジェクトの配列を表現します。 配列の要素は、ルートが配列の先頭の要素になるように順序付けされます。 たとえば、ファイル・システム上のファイルは、親ディレクトリの配列およびファイルの名前に基づいて一意に識別されます。 パス/tmp/foo/barは、new TreePath(new Object[] {"tmp", "foo", "bar"})としてTreePathで表される場合があります。

TreePathは、JTreeおよび関連するクラスで幅広く使用されます。 たとえば、JTreeは選択範囲をTreePathの配列として表します。 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());
   Object myObject= selectedNode.getUserObject();
 
一般に、サブクラスは getLastPathComponentおよびgetParentPathのみをオーバーライドする必要があります。 JTreeではさまざまな位置でTreePathが内部的に作成されるため、一般に、サブクラスTreePathJTreeでの使用には役立ちません。

TreePathが直列化可能な場合、パスの要素が直列化可能でなければ、 NotSerializableExceptionがスローされます。

ツリー・パスの詳細および使用例は、「The Java Tutorial」の「How to Use Trees」を参照してください。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    空のTreePathを作成します。
     
    TreePath(Object lastPathComponent)
    単一要素を格納するTreePathを作成します。
     
    TreePath(Object[] path)
    配列からTreePathを作成します。
    protected
    TreePath(Object[] path, int length)
    配列からTreePathを作成します。
    protected
    TreePath(TreePath parent, Object lastPathComponent)
    指定された親および要素でTreePathを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    このTreePathを指定されたオブジェクトと比較します。
    このパスの最後の要素を返します。
    親のTreePathを返します。
    このTreePathの要素の順序付き配列を返します。
    getPathComponent(int index)
    指定されたインデックスにあるパス要素を返します。
    int
    パス内の要素数を返します。
    int
    このTreePathのハッシュ・コードを返します。
    boolean
    aTreePathがこのTreePathの下位オブジェクトである場合は、trueを返します。
    このパスのすべての要素に加えてchildの要素を格納する新しいパスを返します。
    このオブジェクトのプロパティを表示および識別する文字列を返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • 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は、0からlength - 1までの配列の要素を表します。

      このコンストラクタは内部的に使用され、一般にサブクラスの外部では役立ちません。

      パラメータ:
      path - TreePathの作成元の配列
      length - TreePathの作成元のpathの要素数を特定します。
      例外:
      NullPointerException - pathnullである場合
      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)
      指定されたインデックスにあるパス要素を返します。
      パラメータ:
      index - 要求された要素のインデックス
      戻り値:
      指定されたインデックスでの要素
      例外:
      IllegalArgumentException - インデックスがこのパスの範囲外にある場合
    • equals

      public boolean equals(Object o)
      このTreePathを指定されたオブジェクトと比較します。 これは、oが、(パスの各要素でequalsを使って指定される)要素とまったく同じ要素を持つTreePathである場合に、trueを返します。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      o - 比較対象のオブジェクト
      戻り値:
      このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      このTreePathのハッシュ・コードを返します。 TreePathのハッシュ・コードは、パス内の最後の要素のハッシュ・コードです。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      オブジェクトのhashCode
      関連項目:
    • isDescendant

      public boolean isDescendant(TreePath aTreePath)
      aTreePathがこのTreePathの下位オブジェクトである場合は、trueを返します。 P1P2のパスを構成するすべての要素を格納している場合は、TreePath P1TreePath P2の下位オブジェクトになります。 たとえば、このオブジェクトにパス[a, b]があり、aTreePathにパス[a, b, c]がある場合は、aTreePathはこのオブジェクトの下位オブジェクトとなります。 ただし、aTreePathにパス[a]がある場合は、このオブジェクトの下位オブジェクトではありません。 この定義により、TreePathは常に自身の下位ノードと見なされます。 つまり、aTreePath.isDescendant(aTreePath)trueを返します。
      パラメータ:
      aTreePath - チェックするTreePath
      戻り値:
      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
      戻り値:
      このオブジェクトの文字列表現