モジュール 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に対応する行となります。

    • フィールドの詳細

      • SINGLE_TREE_SELECTION

        static final int SINGLE_TREE_SELECTION
        選択範囲には、同時に複数のパスを指定することはできません。
        関連項目:
        定数フィールド値
      • CONTIGUOUS_TREE_SELECTION

        static final int CONTIGUOUS_TREE_SELECTION
        選択範囲の項目は連続している必要があります。 これが適用されるのは、RowMapperのインスタンスが提供される場合だけです。 したがって、RowMapperが設定されていないとDISCONTIGUOUS_TREE_SELECTIONと同じ動作をします。
        関連項目:
        定数フィールド値
      • DISCONTIGUOUS_TREE_SELECTION

        static final int DISCONTIGUOUS_TREE_SELECTION
        選択範囲の項目数に制限はなく、各項目は連続している必要はありません。
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • setSelectionMode

        void setSelectionMode​(int mode)
        選択モードを設定します。このモードは、SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTIONのどれか1つである必要があります。

        現在の選択範囲が新しいモードに対して有効でない場合は選択範囲を変更できます。 たとえば、モードがSINGLE_TREE_SELECTIONに変更されたときに3つのTreePathが選択された場合、1つのTreePathだけが選択されます。 どのTreePathを選択するかは使用する特定の実装によって決まります。

        パラメータ:
        mode - 設定モードを選択
      • getSelectionMode

        int getSelectionMode​()
        現在の選択モードを返します。これは、SINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTION、またはDISCONTIGUOUS_TREE_SELECTIONのいずれかになります。
        戻り値:
        現在の選択モード
      • setSelectionPath

        void setSelectionPath​(TreePath path)
        選択範囲をパスに設定します。 これが変更を表す場合は、TreeSelectionListenersが通知を受けます。 pathがnullの場合はclearSelectionを呼び出した場合と同じ効果があります。
        パラメータ:
        path - 選択する新しいパス
      • setSelectionPaths

        void setSelectionPaths​(TreePath[] paths)
        選択範囲をパスに設定します。 これが変更を表す場合は、TreeSelectionListenersが通知を受けます。 pathsがnullの場合はclearSelectionを呼び出した場合と同じ効果があります。
        パラメータ:
        paths - 新しい選択範囲
      • addSelectionPath

        void addSelectionPath​(TreePath path)
        現在の選択範囲にパスを追加します。 現在パスが選択範囲にない場合は、TreeSelectionListenersが通知を受けます。 pathがnullの場合は影響はありません。
        パラメータ:
        path - 現在の選択範囲に追加する新しいパス
      • addSelectionPaths

        void addSelectionPaths​(TreePath[] paths)
        現在の選択範囲にパスを追加します。 paths内のパスが現在、選択範囲内にない場合、TreeSelectionListenersが通知を受けます。 pathsがnullの場合は影響はありません。
        パラメータ:
        paths - 現在の選択範囲に追加する新しいパス
      • removeSelectionPath

        void removeSelectionPath​(TreePath path)
        選択範囲からパスを削除します。 パスが選択範囲にある場合は、TreeSelectionListenersが通知を受けます。 pathがnullの場合は影響はありません。
        パラメータ:
        path - 選択範囲から削除するパス
      • removeSelectionPaths

        void removeSelectionPaths​(TreePath[] paths)
        選択範囲からパスを削除します。 paths内のパスのいずれかが選択範囲にある場合は、TreeSelectionListenersが通知を受けます。 pathsがnullの場合、このメソッドは影響を受けません。
        パラメータ:
        paths - 選択範囲から削除するパス
      • getSelectionPath

        TreePath getSelectionPath​()
        選択範囲の先頭のパスを返します。 先頭のパスの定義は実装者に任されており、必ずしもRowMapperが判定した最小整数値を持つTreePathである必要はありません。
        戻り値:
        選択範囲内の最初のパス
      • getSelectionPaths

        TreePath[] getSelectionPaths​()
        選択範囲のパスを返します。 現在何も選択されていない場合は、nullまたは空の配列を返します。
        戻り値:
        選択内のパス
      • getSelectionCount

        int getSelectionCount​()
        選択されているパスの数を返します。
        戻り値:
        選択されたパスの数
      • isPathSelected

        boolean isPathSelected​(TreePath path)
        パスpathが現在の選択範囲にある場合にtrueを返します。
        パラメータ:
        path - lokするパス
        戻り値:
        pathが現在の選択にあるかどうか
      • isSelectionEmpty

        boolean isSelectionEmpty​()
        選択範囲が現在空の場合にtrueを返します。
        戻り値:
        選択が現在空であるかどうか
      • clearSelection

        void clearSelection​()
        現在の選択範囲を空にします。 これが現在の選択範囲の変更を表す場合は、選択リスナーが通知を受けます。
      • setRowMapper

        void setRowMapper​(RowMapper newMapper)
        RowMapperのインスタンスを設定します。 このインスタンスを使うことによって、どの行がどのTreePathに対応するかを判定します。
        パラメータ:
        newMapper - 設定されるRowMapper
      • getRowMapper

        RowMapper getRowMapper​()
        TreePathを行にマップできるRowMapperのインスタンスを返します。
        戻り値:
        TreePathを行にマップできるRowMapperインスタンス
      • getSelectionRows

        int[] getSelectionRows​()
        現在選択されているすべての行を返します。 TreePathが選択されていない場合、またはRowMapperが設定されていない場合は、nullまたは空の配列を返します。
        戻り値:
        現在選択されているすべての行
      • getMinSelectionRow

        int getMinSelectionRow​()
        選択した現在のTreePathの設定のRowMapperから取得した最小値を返します。 何も選択されていない場合、またはRowMapperがない場合は、-1を返します。
        戻り値:
        選択されたTreePathの現在のセットのRowMapperから取得された最小の値
      • getMaxSelectionRow

        int getMaxSelectionRow​()
        選択した現在のTreePathの設定のRowMapperから取得した最大値を返します。 何も選択されていない場合、またはRowMapperがない場合は、-1を返します。
        戻り値:
        選択されたTreePathの現在のセットのRowMapperから取得された最大値
      • isRowSelected

        boolean isRowSelected​(int row)
        rowで識別される行が選択されている場合にtrueを返します。
        パラメータ:
        row - チェックする行
        戻り値:
        行が選択されているかどうか
      • resetRowSelection

        void resetRowSelection​()
        このオブジェクトのTreePathから行へのマッピングを更新します。 このメソッドは、たとえば、ノードが拡張された場合のようにTreePathから整数へのマッピングが変更されたときに呼び出されます。

        通常は呼び出す必要はありません。JTreeとそれに関連するリスナーが呼び出します。 独自のビュー・クラスを実装中の場合は自分で呼び出す必要があります。

      • getLeadSelectionRow

        int getLeadSelectionRow​()
        選択範囲のリード・インデックスを返します。 これは、最後に追加されたインデックスです。
        戻り値:
        リード選択インデックス
      • getLeadSelectionPath

        TreePath getLeadSelectionPath​()
        追加された最後のパスを返します。 このパスはJTreeが保持しているleadSelectionPathのプロパティとは異なる場合があります。
        戻り値:
        追加された最後のパス
      • addPropertyChangeListener

        void addPropertyChangeListener​(PropertyChangeListener listener)
        PropertyChangeListenerをリスナー・リストに追加します。 リスナーは、すべてのプロパティに対して登録されます。

        PropertyChangeEventは、選択範囲モードが変更されるとトリガーされます。

        パラメータ:
        listener - 追加されるPropertyChangeListener
      • removePropertyChangeListener

        void removePropertyChangeListener​(PropertyChangeListener listener)
        PropertyChangeListenerをリスナー・リストから削除します。 すべてのプロパティで登録されたPropertyChangeListenerを削除します。
        パラメータ:
        listener - 削除されるPropertyChangeListener
      • addTreeSelectionListener

        void addTreeSelectionListener​(TreeSelectionListener x)
        選択されたTreePathの設定が変更されるたびに通知を受けるリスナーのリストにxを追加します。
        パラメータ:
        x - 追加される新しいリスナー
      • removeTreeSelectionListener

        void removeTreeSelectionListener​(TreeSelectionListener x)
        選択されたTreePathの設定が変更されるたびに通知を受けるリスナーのリストからxを削除します。
        パラメータ:
        x - 削除するリスナー