JavaTM 2 Platform
Std. Ed. v1.3

javax.swing.tree
クラス DefaultTreeSelectionModel

java.lang.Object
  |
  +--javax.swing.tree.DefaultTreeSelectionModel
すべての実装インタフェース:
Cloneable, Serializable, TreeSelectionModel
直系の既知のサブクラス:
JTree.EmptySelectionModel

public class DefaultTreeSelectionModel
extends Object
implements Cloneable, Serializable, TreeSelectionModel

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

resetRowSelection は選択されたパスを更新するメソッドから呼び出されます。選択できるものをフィルタリングするために、これらのメソッドのどれかをサブクラス化する場合、スーパークラスにメッセージを送っていなければ、必ず resetRowSelection メッセージを送るようにします。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。

関連項目:
JTree, 直列化された形式

フィールドの概要
protected  SwingPropertyChangeSupport changeSupport
          メッセージを送られた登録済みリスナーのために使います。
protected  int leadIndex
          選択範囲のリードパスのインデックスです。
protected  TreePath leadPath
          追加された最後のパスです。
protected  int leadRow
          リード行です。
protected  EventListenerList listenerList
          イベントリスナーリストです。
protected  DefaultListSelectionModel listSelectionModel
          リスト選択モデルの更新を処理します。
protected  RowMapper rowMapper
          指定のパスに行を提供します。
protected  TreePath[] selection
          現在選択されているパスです。
static String SELECTION_MODE_PROPERTY
          selectionMode のプロパティ名です。
protected  int selectionMode
          選択モードは、SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTION のどれかになります。
 
インタフェース javax.swing.tree.TreeSelectionModel から継承したフィールド
CONTIGUOUS_TREE_SELECTION, DISCONTIGUOUS_TREE_SELECTION, SINGLE_TREE_SELECTION
 
コンストラクタの概要
DefaultTreeSelectionModel()
          空の新しい DefaultTreeSelectionMode のインスタンスを生成します。
 
メソッドの概要
 void addPropertyChangeListener(PropertyChangeListener listener)
          PropertyChangeListener をリスナーリストに追加します。
 void addSelectionPath(TreePath path)
          現在の選択範囲にパスを追加します。
 void addSelectionPaths(TreePath[] paths)
          現在の選択範囲にパスを追加します。
 void addTreeSelectionListener(TreeSelectionListener x)
          選択された TreePath の設定が変更されるたびに通知を受けるリスナーのリストに x を追加します。
protected  boolean arePathsContiguous(TreePath[] paths)
          パスが連続しているか、このオブジェクトに RowMapper がない場合、true を返します。
protected  boolean canPathsBeAdded(TreePath[] paths)
          TreePath の特定の設定が追加できるかどうか判定するために使用します。
protected  boolean canPathsBeRemoved(TreePath[] paths)
          モデルの連続性を壊さずにパスを削除できる場合に true を返します。
 void clearSelection()
          現在の選択範囲を空にします。
 Object clone()
          同じ選択範囲を持つこのオブジェクトの複製を返します。
protected  void fireValueChanged(TreeSelectionEvent e)
          このオブジェクトのツリー選択イベントの対象として登録しているリスナーすべてに通知します。
 TreePath getLeadSelectionPath()
          追加された最後のパスを返します。
 int getLeadSelectionRow()
          選択範囲のリードインデックスを返します。
 EventListener[] getListeners(Class listenerType)
          このモデルに追加された、指定されたタイプのリスナーすべての配列を返します。
 int getMaxSelectionRow()
          選択した現在の TreePath の設定の RowMapper から取得した最大値を返します。
 int getMinSelectionRow()
          選択した現在の TreePath の設定の RowMapper から取得した最小値を返します。
 RowMapper getRowMapper()
          TreePath を行にマップできる RowMapper のインスタンスを返します。
 int getSelectionCount()
          選択されているパスの数を返します。
 int getSelectionMode()
          現在の選択モードを返します。
 TreePath getSelectionPath()
          選択範囲の最初のパスを返します。
 TreePath[] getSelectionPaths()
          選択範囲のパスを返します。
 int[] getSelectionRows()
          現在選択されているすべての行を返します。
protected  void insureRowContinuity()
          現在選択されている TreePaths が現在の選択モードで有効であるかを確認します。
protected  void insureUniqueness()
          このメソッドは、現在使用されていないうえに、その実装は操作不能です。
 boolean isPathSelected(TreePath path)
          パス path が現在の選択範囲にある場合に true を返します。
 boolean isRowSelected(int row)
          row で識別される行が選択されている場合に true を返します。
 boolean isSelectionEmpty()
          選択範囲が現在空の場合に true を返します。
protected  void notifyPathChange(Vector changedPaths, TreePath oldLeadSelection)
          path 内の変更をリスナーに通知します。
 void removePropertyChangeListener(PropertyChangeListener listener)
          PropertyChangeListener をリスナーリストから削除します。
 void removeSelectionPath(TreePath path)
          選択範囲からパスを削除します。
 void removeSelectionPaths(TreePath[] paths)
          選択範囲からパスを削除します。
 void removeTreeSelectionListener(TreeSelectionListener x)
          選択された TreePath の設定が変更されるたびに通知を受けるリスナーのリストから x を削除します。
 void resetRowSelection()
          このオブジェクトの TreePath から行へのマッピングを更新します。
 void setRowMapper(RowMapper newMapper)
          RowMapper のインスタンスを設定します。
 void setSelectionMode(int mode)
          選択モデルを設定します。
 void setSelectionPath(TreePath path)
          選択範囲をパスに設定します。
 void setSelectionPaths(TreePath[] pPaths)
          選択範囲を paths のパスに設定します。
 String toString()
          このオブジェクトのプロパティを表示および識別する文字列を返します。
protected  void updateLeadIndex()
          leadIndex インスタンス変数を更新します。
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

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 に対応するかを判定します。
定義:
インタフェース TreeSelectionModel 内の setRowMapper

getRowMapper

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

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 になります。

定義:
インタフェース TreeSelectionModel 内の setSelectionMode

getSelectionMode

public int getSelectionMode()
現在の選択モードを返します。このモードは、SINGLE_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTIONCONTIGUOUS_TREE_SELECTION のどれかとなります。
定義:
インタフェース TreeSelectionModel 内の getSelectionMode

setSelectionPath

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

setSelectionPaths

public void setSelectionPaths(TreePath[] pPaths)
選択範囲を paths のパスに設定します。これが変更を表す場合は、TreeSelectionListeners が通知を受けます。潜在的に、paths はオブジェクトによって保持されます。そのため、一度渡された配列内のオブジェクトの変更は許されません。

paths が null の場合、これは clearSelection を呼び出すのと同じ効果があります。

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

選択モードが CONTIGUOUS_TREE_SELECTION の場合に、新規パスの追加により選択範囲が不連続になると、選択範囲は paths の最初の TreePath にリセットされます。

定義:
インタフェース TreeSelectionModel 内の setSelectionPaths
パラメータ:
paths - 新しい選択範囲

addSelectionPath

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

addSelectionPaths

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

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

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

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

removeSelectionPath

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

removeSelectionPaths

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

getSelectionPath

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

getSelectionPaths

public TreePath[] getSelectionPaths()
選択範囲のパスを返します。現在何も選択されていない場合は、null または空の配列を返します。
定義:
インタフェース TreeSelectionModel 内の getSelectionPaths

getSelectionCount

public int getSelectionCount()
選択されているパスの数を返します。
定義:
インタフェース TreeSelectionModel 内の getSelectionCount

isPathSelected

public boolean isPathSelected(TreePath path)
パス path が現在の選択範囲にある場合に true を返します。
定義:
インタフェース TreeSelectionModel 内の isPathSelected

isSelectionEmpty

public boolean isSelectionEmpty()
選択範囲が現在空の場合に true を返します。
定義:
インタフェース TreeSelectionModel 内の isSelectionEmpty

clearSelection

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

addTreeSelectionListener

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

removeTreeSelectionListener

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

fireValueChanged

protected void fireValueChanged(TreeSelectionEvent e)
このオブジェクトのツリー選択イベントの対象として登録しているリスナーすべてに通知します。
関連項目:
addTreeSelectionListener(javax.swing.event.TreeSelectionListener), EventListenerList

getListeners

public EventListener[] getListeners(Class listenerType)
このモデルに追加された、指定されたタイプのリスナーすべての配列を返します。
戻り値:
このモデルから listenerType 通知を受け取ったすべてのオブジェクト
導入されたバージョン:
1.3

getSelectionRows

public int[] getSelectionRows()
現在選択されているすべての行を返します。選択された TreePath がない場合、または RowMapper が設定されていない場合は、null または空の配列を返します。一部の行が可視でない場合 (つまり TreePath に対応する行に、RowMapper が -1 を返す場合) に、選択された TreePaths よりも短い配列を返すことがあります。
定義:
インタフェース TreeSelectionModel 内の getSelectionRows

getMinSelectionRow

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

getMaxSelectionRow

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

isRowSelected

public boolean isRowSelected(int row)
row で識別される行が選択されている場合に true を返します。
定義:
インタフェース TreeSelectionModel 内の isRowSelected

resetRowSelection

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

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

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

定義:
インタフェース TreeSelectionModel 内の resetRowSelection

getLeadSelectionRow

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

getLeadSelectionPath

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

addPropertyChangeListener

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

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

定義:
インタフェース TreeSelectionModel 内の addPropertyChangeListener
パラメータ:
listener - 追加する PropertyChangeListener

removePropertyChangeListener

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

insureRowContinuity

protected void insureRowContinuity()
現在選択されている TreePaths が現在の選択モードで有効であるかを確認します。選択モードが CONTIGUOUS_TREE_SELECTION のときに RowMapper が存在している場合、このメソッドはすべての行が連続しているかを確認します。選択範囲が連続してない場合は、連続したパスの最初セットを含むようにリセットされます。

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


arePathsContiguous

protected boolean arePathsContiguous(TreePath[] paths)
パスが連続しているか、このオブジェクトに RowMapper がない場合、true を返します。

canPathsBeAdded

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

canPathsBeRemoved

protected boolean canPathsBeRemoved(TreePath[] paths)
モデルの連続性を壊さずにパスを削除できる場合に true を返します。これにはかなり大きな負荷がかかります。

notifyPathChange

protected void notifyPathChange(Vector changedPaths,
                                TreePath oldLeadSelection)
path 内の変更をリスナーに通知します。changePaths は、PathPlaceHolder のインスタンスを保持します。

updateLeadIndex

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

insureUniqueness

protected void insureUniqueness()
このメソッドは、現在使用されていないうえに、その実装は操作不能です。まだ、setSelectionPaths や addSelectionPaths によって呼び出されますが、下位互換性の場合に限られます。

toString

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

clone

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.