モジュール java.desktop
パッケージ 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()).
           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を作成します。
        TreePath​(Object lastPathComponent)
      単一要素を格納するTreePathを作成します。
        TreePath​(Object[] path)
      配列からTreePathを作成します。
      protected TreePath​(Object[] path, int length)
      配列からTreePathを作成します。
      protected TreePath​(TreePath parent, Object lastPathComponent)
      指定された親および要素でTreePathを作成します。
    • コンストラクタの詳細

      • 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は、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
        関連項目:
        Object.hashCode(), HashMap
      • 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
        戻り値:
        このオブジェクトの文字列表現