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

クラスDefaultTreeSelectionModel

java.lang.Object
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モデルと見なされます。

      現在の選択範囲が新しいモードに対して有効でない場合、選択範囲は変更されます。 たとえば、3つのTreePathが選択された状態でモードをSINGLE_TREE_SELECTIONに変更した場合、一つの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
      戻り値:
      選択範囲内の最初のパス
    • getSelectionPaths

      public TreePath[] getSelectionPaths()
      選択範囲を返します。
      定義:
      getSelectionPaths、インタフェース: 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 - 削除するリスナー
    • getTreeSelectionListeners

      public TreeSelectionListener[] getTreeSelectionListeners()
      このモデルに登録された、すべてのツリー選択リスナーから成る配列を返します。
      戻り値:
      このモデルのTreeSelectionListener全部。ツリー選択リスナーが現在登録されていない場合は空の配列
      導入されたバージョン:
      1.4
      関連項目:
      addTreeSelectionListener(javax.swing.event.TreeSelectionListener), removeTreeSelectionListener(javax.swing.event.TreeSelectionListener)
    • fireValueChanged

      protected void fireValueChanged​(TreeSelectionEvent e)
      このオブジェクトのツリー選択イベントの対象として登録しているリスナーすべてに通知します。
      パラメータ:
      e - 変更を記述するイベント
      関連項目:
      addTreeSelectionListener(javax.swing.event.TreeSelectionListener), EventListenerList
    • 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
    • getPropertyChangeListeners

      public PropertyChangeListener[] getPropertyChangeListeners()
      このDefaultTreeSelectionModelに登録されているすべてのプロパティ変更リスナーの配列を返します。
      戻り値:
      このモデルのすべてのPropertyChangeListener。現在プロパティ変更リスナーが登録されていない場合は空の配列
      導入されたバージョン:
      1.4
      関連項目:
      addPropertyChangeListener(java.beans.PropertyChangeListener), removePropertyChangeListener(java.beans.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

      @Deprecatedprotected void notifyPathChange​(Vector<?> changedPaths, TreePath oldLeadSelection)
      Deprecated.
      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