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

インタフェースTreeSelectionModel

既知のすべての実装クラス:
DefaultTreeSelectionModel, JTree.EmptySelectionModel

public interface TreeSelectionModel
このインタフェースはツリー・コンポーネントの現在の選択状況を表します。 ツリー選択モデルの詳細および使用例は、「The Java Tutorial」の「How to Use Trees」セクションを参照してください。

ツリー選択の状況はTreePathの設定、またオプションで整数設定によって識別されます。 TreePathから整数へはRowMapperのインスタンスによりマッピングされます。 TreeSelectionModelがRowMapperを正しく操作する必要はなく、RowMapperがない場合はgetSelectionRowsはnullを返します。

TreeSelectionModelは単一パス(SINGLE_TREE_SELECTION)、複数の連続パス(CONTIGUOUS_TREE_SELECTION)、複数の不連続パス(DISCONTIGUOUS_TREE_SELECTION)が使用できるように設定できます。 RowMapperを使用してTreePathが連続しているかどうかを判定します。 RowMapperがない場合は、CONTIGUOUS_TREE_SELECTIONおよびDISCONTIGUOUS_TREE_SELECTIONは同じように動作し、TreeSelectionModelにはパスをいくつでも格納できることになります。

CONTIGUOUS_TREE_SELECTIONの選択モデルは、いつでもパスは変更でき(setSelectionPathaddSelectionPath ... により)、TreePathを再度判定して連続にすることもできます。 resetRowSelectionを呼び出してTreePathの判定をすることもできます。 非連続TreePathの設定を連続設定にマッピングする方法は、特定のポリシーを適用するためにこのインタフェースの実装者に一任されています。

実装にあたっては、選択範囲に追加された重複するTreePathを結合する必要があります。 たとえば、次のコードを実行したとします

   TreePath[] paths = new TreePath[] { treePath, treePath };
   treeSelectionModel.setSelectionPaths(paths);
 
1つのパスtreePathのみが選択されるようにして、treePathのコピーが2つ選択されないようにする必要があります。

リードTreePathは追加または設定された最後のパスです。 したがって、リード行はRowMapperによって判定されたTreePathに対応する行となります。