JavaTM 2 Platform
Standard Ed. 5.0

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);
 
一つのパス treePath のみが選択されるようにして、treePath のコピーが 2 つ選択されないようにする必要があります。

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


フィールドの概要
static int CONTIGUOUS_TREE_SELECTION
          選択範囲の項目は連続している必要があります。
static int DISCONTIGUOUS_TREE_SELECTION
          選択範囲の項目数に制限はなく、各項目は連続している必要はありません。
static int SINGLE_TREE_SELECTION
          選択範囲には、同時に複数のパスを指定することはできません。
 
メソッドの概要
 void addPropertyChangeListener(PropertyChangeListener listener)
          PropertyChangeListener をリスナーリストに追加します。
 void addSelectionPath(TreePath path)
          現在の選択範囲にパスを追加します。
 void addSelectionPaths(TreePath[] paths)
          現在の選択範囲にパスを追加します。
 void addTreeSelectionListener(TreeSelectionListener x)
          選択された TreePath の設定が変更されるたびに通知を受けるリスナーのリストに x を追加します。
 void clearSelection()
          現在の選択範囲を空にします。
 TreePath getLeadSelectionPath()
          追加された最後のパスを返します。
 int getLeadSelectionRow()
          選択範囲のリードインデックスを返します。
 int getMaxSelectionRow()
          選択した現在の TreePath の設定の RowMapper から取得した最大値を返します。
 int getMinSelectionRow()
          選択した現在の TreePath の設定の RowMapper から取得した最小値を返します。
 RowMapper getRowMapper()
          TreePath を行にマップできる RowMapper のインスタンスを返します。
 int getSelectionCount()
          選択されているパスの数を返します。
 int getSelectionMode()
          現在の選択モードを返します。
 TreePath getSelectionPath()
          選択範囲の先頭のパスを返します。
 TreePath[] getSelectionPaths()
          選択範囲のパスを返します。
 int[] getSelectionRows()
          現在選択されているすべての行を返します。
 boolean isPathSelected(TreePath path)
          パス path が現在の選択範囲にある場合に true を返します。
 boolean isRowSelected(int row)
          row で識別される行が選択されている場合に true を返します。
 boolean isSelectionEmpty()
          選択範囲が現在空の場合に true を返します。
 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[] paths)
          選択範囲をパスに設定します。
 

フィールドの詳細

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 が選択された場合、一つの TreePath だけを選択できます。どの TreePath を選択するかは使用する特定の実装によって決まります。


getSelectionMode

int getSelectionMode()
現在の選択モードを返します。このモードは、SINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION のいずれかとなります。


setSelectionPath

void setSelectionPath(TreePath path)
選択範囲をパスに設定します。これが変更を表す場合は、TreeSelectionListeners が通知を受けます。path が null の場合は clearSelection を呼び出した場合と同じになります。

パラメータ:
path - 選択する新しいパス

setSelectionPaths

void setSelectionPaths(TreePath[] paths)
選択範囲をパスに設定します。これが変更を表す場合は、TreeSelectionListeners が通知を受けます。path が null の場合は clearSelection を呼び出した場合と同じになります。

パラメータ:
paths - 新しい選択範囲

addSelectionPath

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

パラメータ:
path - 現在の選択範囲に追加する新しいパス

addSelectionPaths

void addSelectionPaths(TreePath[] paths)
現在の選択範囲にパスを追加します。現在パスが選択範囲にない場合は、TreeSelectionListeners が通知を受けます。path が 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 を返します。


isSelectionEmpty

boolean isSelectionEmpty()
選択範囲が現在空の場合に true を返します。


clearSelection

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


setRowMapper

void setRowMapper(RowMapper newMapper)
RowMapper のインスタンスを設定します。このインスタンスを使うことによって、どの行がどの TreePath に対応するかを判定します。


getRowMapper

RowMapper getRowMapper()
TreePath を行にマップできる RowMapper のインスタンスを返します。


getSelectionRows

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


getMinSelectionRow

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


getMaxSelectionRow

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


isRowSelected

boolean isRowSelected(int row)
row で識別される行が選択されている場合に true を返します。


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 - 削除するリスナー

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。