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

クラスDefaultTreeSelectionModel

  • すべての実装されたインタフェース:
    Serializable, Cloneable, TreeSelectionModel
    直系の既知のサブクラス:
    JTree.EmptySelectionModel


    public class DefaultTreeSelectionModel
    extends Object
    implements Cloneable, Serializable, TreeSelectionModel
    TreeSelectionModelのデフォルト実装です。 リスナーは、行が変更されたときではなく選択範囲のパスが変更されたときに通知を受けます。 行の変更を追跡できるようにするには、ツリー上で展開イベントのリスナーになることにより、行の変更を判定します。

    resetRowSelectionは選択されたパスを更新するメソッドから呼び出されます。 選択できるものをフィルタリングするために、これらのメソッドのどれかをサブクラス化する場合、スーパー・クラスにメッセージを送っていなければ、必ずresetRowSelectionメッセージを送るようにします。 警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    関連項目:
    JTree, 「直列化されたフォーム」
    • フィールドの詳細

      • SELECTION_MODE_PROPERTY

        public static final String SELECTION_MODE_PROPERTY
        selectionModeのプロパティ名です。
        関連項目:
        定数フィールド値
      • changeSupport

        protected SwingPropertyChangeSupport changeSupport
        メッセージを受け取る登録済みリスナーのために使います。
      • selection

        protected TreePath[] selection
        現在選択されているパスです。 選択されているパスがない場合はnullになります。
      • listenerList

        protected EventListenerList listenerList
        イベント・リスナー・リストです。
      • rowMapper

        protected transient RowMapper rowMapper
        指定のパスに行を提供します。
      • listSelectionModel

        protected DefaultListSelectionModel listSelectionModel
        リスト選択モデルの更新を処理します。 RowMapperを使用してTreePathから任意の行へマッピングします。次にマッピング先に値が配置されます。
      • selectionMode

        protected int selectionMode
        選択モードは、SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTIONのどれかになります。
      • leadPath

        protected TreePath leadPath
        追加された最後のパスです。
      • leadIndex

        protected int leadIndex
        選択範囲のリード・パスのインデックスです。
      • leadRow

        protected int leadRow
        リード行です。
    • コンストラクタの詳細

      • DefaultTreeSelectionModel

        public DefaultTreeSelectionModel​()
        空の新しいDefaultTreeSelectionModeのインスタンスを生成します。生成されたインスタンスの選択モードはDISCONTIGUOUS_TREE_SELECTIONです。
    • メソッドの詳細

      • setRowMapper

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

        public RowMapper getRowMapper​()
        TreePathを行にマップできるRowMapperのインスタンスを返します。
        定義:
        getRowMapper、インタフェース: TreeSelectionModel
        戻り値:
        TreePathを行にマップできるRowMapperインスタンス
      • setSelectionMode

        public void setSelectionMode​(int mode)
        選択モードを設定します。このモードは、SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTIONのどれか1つである必要があります。 モードが定義された値でない場合は、DISCONTIGUOUS_TREE_SELECTIONモデルと見なされます。

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

        モードを定義されていないタイプに設定すると、モードはDISCONTIGUOUS_TREE_SELECTIONになります。

        定義:
        setSelectionMode、インタフェース: TreeSelectionModel
        パラメータ:
        mode - 設定モードを選択
      • getSelectionMode

        public int getSelectionMode​()
        選択モードを返します。これは、SINGLE_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION、またはCONTIGUOUS_TREE_SELECTIONのいずれかになります。
        定義:
        getSelectionMode、インタフェース: TreeSelectionModel
        戻り値:
        現在の選択モード
      • setSelectionPath

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

        public void setSelectionPaths​(TreePath[] pPaths)
        選択範囲を設定します。 指定されたパスが新しい選択範囲とみなされるかどうかは、選択モードによって異なります。 指定された配列がnullまたは空の場合は、選択範囲がクリアされます。 選択モードがSINGLE_TREE_SELECTIONの場合は、pPathsの最初のパスだけが使用されます。 選択モードがCONTIGUOUS_TREE_SELECTIONで、指定されたパスが連続していない場合は、pPathsの最初のパスだけが使用されます。 選択モードがDISCONTIGUOUS_TREE_SELECTIONの場合は、すべてのパスが使用されます。

        pPathsnullパスはすべて無視されます。

        これが変更を表す場合は、登録されているすべての TreeSelectionListenerが通知を受けます。

        リード・パスは最後の一意のパスに設定されます。

        getSelectionPathsから返されるパスの順序は、このメソッドに指定されたパスと同じです。

        定義:
        setSelectionPaths、インタフェース: TreeSelectionModel
        パラメータ:
        pPaths - 新しい選択範囲
      • addSelectionPath

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

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

        リード・パスはpathsの最後のパスに設定されます。

        選択モードがCONTIGUOUS_TREE_SELECTIONの場合、パスを新たに追加すると選択範囲が不連続になります。 これにより、2つの結果が発生する可能性があります。pathsのTreePathが連続している場合は、選択範囲はこれらのTreePathになります。そうでない場合は、TreePathが連続していないので、選択範囲はpathsの最初のTreePathになります。

        定義:
        addSelectionPaths、インタフェース: TreeSelectionModel
        パラメータ:
        paths - 現在の選択範囲に追加する新しいパス
      • removeSelectionPath

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

        public void removeSelectionPaths​(TreePath[] paths)
        選択範囲からパスを削除します。 paths内のパスが選択範囲にある場合は、TreeSelectionListenersが通知を受けます。 pathsがnullの場合は影響はありません。
        定義:
        removeSelectionPaths、インタフェース: TreeSelectionModel
        パラメータ:
        paths - 選択範囲から削除するパス
      • getSelectionPath

        public TreePath getSelectionPath​()
        選択範囲の先頭のパスを返します。 現在選択されている項目が1つだけの場合に便利です。
        定義:
        getSelectionPath、インタフェース: TreeSelectionModel
        戻り値:
        選択範囲内の最初のパス
      • getSelectionCount

        public int getSelectionCount​()
        選択されているパスの数を返します。
        定義:
        getSelectionCount、インタフェース: TreeSelectionModel
        戻り値:
        選択されたパスの数
      • isPathSelected

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

        public boolean isSelectionEmpty​()
        選択範囲が現在空の場合にtrueを返します。
        定義:
        isSelectionEmpty、インタフェース: TreeSelectionModel
        戻り値:
        選択が現在空であるかどうか
      • clearSelection

        public void clearSelection​()
        現在の選択範囲を空にします。 これが現在の選択範囲の変更を表す場合は、選択リスナーが通知を受けます。
        定義:
        clearSelection、インタフェース: TreeSelectionModel
      • addTreeSelectionListener

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

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

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        このモデルにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。 FooListenerは、addFooListenerメソッドを使用して登録されます。

        FooListener.classなどのクラス・リテラルを使用してlistenerType引数を指定できます。 たとえば、次のコードを使用して、DefaultTreeSelectionModel mをそのツリー選択リスナーに照会できます。

        TreeSelectionListener[] tsls = (TreeSelectionListener[])(m.getListeners(TreeSelectionListener.class));
        このようなリスナーがない場合は空の配列を返します。
        型パラメータ:
        T - リスナー型
        パラメータ:
        listenerType - リクエストされたリスナーの型
        戻り値:
        このコンポーネント上でFooListenerとして登録されたすべてのオブジェクトの配列、またはこのようなリスナーが追加されていない場合は空の配列
        例外:
        ClassCastException - listenerTypeで、java.util.EventListenerを実装するクラスまたはインタフェースが指定されなかった場合
        導入されたバージョン:
        1.3
        関連項目:
        getTreeSelectionListeners(), getPropertyChangeListeners()
      • getSelectionRows

        public int[] getSelectionRows​()
        行の選択を返します。 getSelectionPathsから返されるTreePathとこのメソッドとの間には、必ずしも1対1のマッピングがあるとは限りません。 特に、TreePathが表示可能でない( RowMapperTreePathに対応する行に対して-1を返す)場合は、対応する行が返される配列に含まれません。 たとえば、選択範囲がABの2つのパス(行10Aがあり、Bは現在表示可能でない)で構成される場合、このメソッドは単一のエントリ10を含む配列を返します。
        定義:
        getSelectionRows、インタフェース: TreeSelectionModel
        戻り値:
        行の選択
      • getMinSelectionRow

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

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

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

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

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

        insureRowContinuityを呼び出して、現在選択されているTreePathsがまだ選択モードで有効であることを確認します。

        定義:
        resetRowSelection、インタフェース: TreeSelectionModel
      • getLeadSelectionRow

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

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

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

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

        定義:
        addPropertyChangeListener、インタフェース: TreeSelectionModel
        パラメータ:
        listener - 追加されるPropertyChangeListener
      • removePropertyChangeListener

        public void removePropertyChangeListener​(PropertyChangeListener listener)
        PropertyChangeListenerをリスナー・リストから削除します。 すべてのプロパティで登録されたPropertyChangeListenerを削除します。
        定義:
        removePropertyChangeListener、インタフェース: TreeSelectionModel
        パラメータ:
        listener - 削除されるPropertyChangeListener
      • insureRowContinuity

        protected void insureRowContinuity​()
        現在選択されているTreePathが現在の選択モードで有効であるかを確認します。 選択モードがCONTIGUOUS_TREE_SELECTIONのときにRowMapperが存在している場合、このメソッドはすべての行が連続しているか(ソートしたときに、すべての行が間隔を空けずに順序よく並んでいるか)を確認します。 選択範囲が連続してない場合は、ソートしたときに連続した行の最初のセットが含まれるようにリセットされます。

        選択モードがSINGLE_TREE_SELECTIONの場合に、複数のTreePathが選択されると、選択範囲は、現在選択されている最初のパスを含むようにリセットされます。

      • arePathsContiguous

        protected boolean arePathsContiguous​(TreePath[] paths)
        パスが連続しているか、このオブジェクトにRowMapperがない場合、trueを返します。
        パラメータ:
        paths - チェックするパスの配列
        戻り値:
        パスが連続しているのか、このオブジェクトにRowMapperがないのか
      • canPathsBeAdded

        protected boolean canPathsBeAdded​(TreePath[] paths)
        TreePathの特定のセットが追加できるかどうか判定するために使用します。 pathsがnull (または空)の場合、このオブジェクトがRowMapperを持たない場合、現在選択されていない場合、選択モードがDISCONTIGUOUS_TREE_SELECTIONの場合、または現在の選択範囲にパスを追加しても、TreePathが連続設定である場合に、trueを返します。
        パラメータ:
        paths - チェックするTreePathsの配列
        戻り値:
        TreePathsの特定のセットを追加できるかどうか
      • canPathsBeRemoved

        protected boolean canPathsBeRemoved​(TreePath[] paths)
        モデルの連続性を壊さずにパスを削除できる場合にtrueを返します。 これにはかなり大きな負荷がかかります。
        パラメータ:
        paths - チェックするTreePathの配列
        戻り値:
        モデルの連続性を損なうことなくパスを削除できるかどうか
      • notifyPathChange

        @Deprecated
        protected void notifyPathChange​(Vector<?> changedPaths,
                                        TreePath oldLeadSelection)
        非推奨。 JDK version 1.7以降
        path内の変更をリスナーに通知します。changePathsは、PathPlaceHolderのインスタンスを保持します。
        パラメータ:
        changedPaths - 変更されたパスのベクトル
        oldLeadSelection - 古い選択パス
      • updateLeadIndex

        protected void updateLeadIndex​()
        leadIndexインスタンス変数を更新します。
      • insureUniqueness

        protected void insureUniqueness​()
        このメソッドは廃止されたため、その実装は操作不能です。 setSelectionPathsやaddSelectionPathsによってまだ呼び出されますが、下位互換性の場合に限られます。
      • toString

        public String toString​()
        このオブジェクトのプロパティを表示および識別する文字列を返します。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        このオブジェクトの文字列表現
      • clone

        public Object clone​()
                     throws CloneNotSupportedException
        同じ選択範囲を持つこのオブジェクトの複製を返します。 このメソッドは選択リスナーとプロパティ・リスナーを複製しません。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このインスタンスの複製。
        例外:
        CloneNotSupportedException - このクラスのインスタンスではスローされない
        関連項目:
        Cloneable