モジュール 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を参照してください。