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
から返されるオブジェクトになります。 JTree
がDefaultTreeModel
とともに使用されると、パスの要素は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
が内部的に作成されるため、一般に、サブクラスTreePath
やJTree
での使用には役立ちません。
TreePath
が直列化可能な場合、パスの要素が直列化可能でなければ、 NotSerializableException
がスローされます。
ツリー・パスの詳細および使用例は、「The Java Tutorial」の「How to Use Trees」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beans
パッケージに追加されました。 XMLEncoder
を参照してください。
-
コンストラクタのサマリー
修飾子コンストラクタ説明protected
TreePath()
空のTreePath
を作成します。単一要素を格納するTreePath
を作成します。配列からTreePath
を作成します。protected
配列からTreePath
を作成します。protected
指定された親および要素でTreePath
を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
このTreePath
を指定されたオブジェクトと比較します。このパスの最後の要素を返します。親のTreePath
を返します。Object[]
getPath()
このTreePath
の要素の順序付き配列を返します。getPathComponent
(int index) 指定されたインデックスにあるパス要素を返します。int
パス内の要素数を返します。int
hashCode()
このTreePath
のハッシュ・コードを返します。boolean
isDescendant
(TreePath aTreePath) aTreePath
がこのTreePath
の下位オブジェクトである場合は、trueを返します。pathByAddingChild
(Object child) このパスのすべての要素に加えてchild
の要素を格納する新しいパスを返します。toString()
このオブジェクトのプロパティを表示および識別する文字列を返します。
-
コンストラクタの詳細
-
TreePath
@ConstructorProperties("path") public TreePath(Object[] path) 配列からTreePath
を作成します。 配列は、ノードへのパスを一意に識別します。- パラメータ:
path
- ノードへのパスを表すオブジェクトの配列- 例外:
IllegalArgumentException
-path
がnull
、空、またはnull
値を含む場合
-
TreePath
public TreePath(Object lastPathComponent) 単一要素を格納するTreePath
を作成します。 これは、ルートを識別するTreePath
を構築する際に使用されます。- パラメータ:
lastPathComponent
- ルート- 例外:
IllegalArgumentException
-lastPathComponent
がnull
である場合- 関連項目:
-
TreePath
指定された親および要素でTreePath
を作成します。- パラメータ:
parent
- 親へのパス。ルートを示す場合はnull
lastPathComponent
- 最後のパス要素- 例外:
IllegalArgumentException
-lastPathComponent
がnull
である場合
-
TreePath
protected TreePath(Object[] path, int length) 配列からTreePath
を作成します。 返されるTreePath
は、0
からlength - 1
までの配列の要素を表します。このコンストラクタは内部的に使用され、一般にサブクラスの外部では役立ちません。
- パラメータ:
path
-TreePath
の作成元の配列length
-TreePath
の作成元のpath
の要素数を特定します。- 例外:
NullPointerException
-path
がnull
である場合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
を返します。 -
hashCode
public int hashCode()このTreePath
のハッシュ・コードを返します。TreePath
のハッシュ・コードは、パス内の最後の要素のハッシュ・コードです。 -
isDescendant
public boolean isDescendant(TreePath aTreePath) aTreePath
がこのTreePath
の下位オブジェクトである場合は、trueを返します。P1
がP2
のパスを構成するすべての要素を格納している場合は、TreePath
P1
はTreePath
P2
の下位オブジェクトになります。 たとえば、このオブジェクトにパス[a, b]
があり、aTreePath
にパス[a, b, c]
がある場合は、aTreePath
はこのオブジェクトの下位オブジェクトとなります。 ただし、aTreePath
にパス[a]
がある場合は、このオブジェクトの下位オブジェクトではありません。 この定義により、TreePath
は常に自身の下位ノードと見なされます。 つまり、aTreePath.isDescendant(aTreePath)
はtrue
を返します。- パラメータ:
aTreePath
- チェックするTreePath
- 戻り値:
aTreePath
がこのパスの下位オブジェクトである場合はtrue
-
pathByAddingChild
このパスのすべての要素に加えてchild
の要素を格納する新しいパスを返します。child
は新しく生成されたTreePath
の最後の要素となります。- パラメータ:
child
- 追加するパス要素- 戻り値:
- このパスのすべての要素と
child
を含む新しいパス - 例外:
NullPointerException
-child
がnull
である場合
-
getParentPath
public TreePath getParentPath()親のTreePath
を返します。null
の戻り値は、これがルート・ノードであることを示します。- 戻り値:
- 親のパス
-
toString
public String toString()このオブジェクトのプロパティを表示および識別する文字列を返します。
-