- java.lang.Object
-
- javax.swing.DefaultListSelectionModel
-
- すべての実装されたインタフェース:
Serializable
,Cloneable
,ListSelectionModel
public class DefaultListSelectionModel extends Object implements ListSelectionModel, Cloneable, Serializable
リスト選択のデフォルト・データ・モデルです。警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートが
java.beans
パッケージに追加されています。XMLEncoder
を参照してください。- 導入されたバージョン:
- 1.2
- 関連項目:
ListSelectionModel
, 「直列化されたフォーム」
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected boolean
leadAnchorNotificationEnabled
リード・アンカー通知が有効かどうか。protected EventListenerList
listenerList
リスナーのリスト。-
インタフェース javax.swing.ListSelectionModelで宣言されたフィールド
MULTIPLE_INTERVAL_SELECTION, SINGLE_INTERVAL_SELECTION, SINGLE_SELECTION
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 DefaultListSelectionModel()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
addSelectionInterval(int index0, int index1)
選択範囲を、現在の選択範囲とindex0
以上index1
以下のインデックスの示す範囲との和集合に変更します。Object
clone()
この選択モデルの複製を、同じ選択状態で返します。protected void
fireValueChanged(boolean isAdjusting)
一連の調整が終了したことをリスナーに通知します。protected void
fireValueChanged(int firstIndex, int lastIndex)
firstIndex
、lastIndex
間で選択の値が変更されたことをListSelectionListeners
に通知します。protected void
fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
<T extends EventListener>
T[]getListeners(Class<T> listenerType)
このモデルにFooListener
として現在登録されているすべてのオブジェクトの配列を返します。ListSelectionListener[]
getListSelectionListeners()
このDefaultListSelectionModel
に登録されたすべてのリスト選択リスナーの配列を返します。void
insertIndexInterval(int index, int length, boolean before)
indexの前/後から始まるlengthインデックスを挿入します。boolean
isLeadAnchorNotificationEnabled()
leadAnchorNotificationEnabled
フラグの値を返します。void
moveLeadSelectionIndex(int leadIndex)
先頭の選択インデックスを設定して、すべての選択値を未変更のままにします。void
removeIndexInterval(int index0, int index1)
選択モデルから、index0とindex1を両端として含む区間のインデックスを削除します。void
removeSelectionInterval(int index0, int index1)
選択範囲を、現在の選択範囲とindex0
以上index1
以下のインデックスの示す範囲との差集合に変更します。void
setAnchorSelectionIndex(int anchorIndex)
アンカー選択インデックスを設定して、すべての選択値を変更しないままにします。void
setLeadAnchorNotificationEnabled(boolean flag)
leadAnchorNotificationEnabledフラグの値を設定します。void
setLeadSelectionIndex(int leadIndex)
先頭の選択インデックスを設定し、アンカーと新しい先頭の間の値が、すべて選択またはすべて選択解除のどちらかであることを保証します。void
setSelectionInterval(int index0, int index1)
選択範囲をindex0
以上index1
以下に変更します。void
setSelectionMode(int selectionMode)
選択モードを設定します。String
toString()
このオブジェクトのプロパティを表示および識別する文字列を返します。-
クラス java.lang.Objectで宣言されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
インタフェース javax.swing.ListSelectionModelで宣言されたメソッド
addListSelectionListener, clearSelection, getAnchorSelectionIndex, getLeadSelectionIndex, getMaxSelectionIndex, getMinSelectionIndex, getSelectedIndices, getSelectedItemsCount, getSelectionMode, getValueIsAdjusting, isSelectedIndex, isSelectionEmpty, removeListSelectionListener, setValueIsAdjusting
-
-
-
-
フィールドの詳細
-
listenerList
protected EventListenerList listenerList
リスナーのリスト。
-
leadAnchorNotificationEnabled
protected boolean leadAnchorNotificationEnabled
リード・アンカー通知が有効かどうか。
-
-
メソッドの詳細
-
setSelectionMode
public void setSelectionMode(int selectionMode)
選択モードを設定します。 使用可能な選択モードは、次のリストのとおりです。ListSelectionModel.SINGLE_SELECTION
- 1回に1つのリスト・インデックスのみを選択できます。 このモードでは、setSelectionInterval
メソッドとaddSelectionInterval
メソッドは同等であり、どちらも現在の選択を、2番目の引数で表されるインデックス(「リード・インデックス」)で置き換えます。ListSelectionModel.SINGLE_INTERVAL_SELECTION
- 1回に1つの連続区間のみを選択できます。 このモードでは、addSelectionInterval
は、指定された間隔が既存の選択範囲に隣接していたりオーバーラップしていたりしないかぎりsetSelectionInterval
と同様に動作する(現在の選択を置き換える)ため、選択範囲を拡張するために使用できます。ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
- このモードでは、選択対象に制限はありません。
- 定義:
setSelectionMode
、インタフェースListSelectionModel
- パラメータ:
selectionMode
- 選択モード- 例外:
IllegalArgumentException
- 許可された選択モードでない場合- 関連項目:
ListSelectionModel.getSelectionMode()
-
getListSelectionListeners
public ListSelectionListener[] getListSelectionListeners()
このDefaultListSelectionModel
に登録されたすべてのリスト選択リスナーの配列を返します。- 戻り値:
- このモデルのすべての
ListSelectionListener
。リスト選択リスナーが現在登録されていない場合は空の配列 - 導入されたバージョン:
- 1.4
- 関連項目:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
,ListSelectionModel.removeListSelectionListener(javax.swing.event.ListSelectionListener)
-
fireValueChanged
protected void fireValueChanged(boolean isAdjusting)
一連の調整が終了したことをリスナーに通知します。- パラメータ:
isAdjusting
- 一連の調整の最後の変更である場合はtrue
-
fireValueChanged
protected void fireValueChanged(int firstIndex, int lastIndex)
firstIndex
、lastIndex
間で選択の値が変更されたことをListSelectionListeners
に通知します。- パラメータ:
firstIndex
- 範囲の先頭のインデックスlastIndex
- 範囲の最後のインデックス
-
fireValueChanged
protected void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
- パラメータ:
firstIndex
- 範囲の先頭のインデックスlastIndex
- 範囲の最後のインデックスisAdjusting
- 一連の調整の最後の変更である場合はtrue- 関連項目:
EventListenerList
-
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
このモデルにFooListener
として現在登録されているすべてのオブジェクトの配列を返します。FooListener
は、addFooListener
メソッドを使用して登録されます。FooListener.class
などのクラス・リテラルを使用してlistenerType
引数を指定できます。 たとえば、このリスト選択リスナーに対するDefaultListSelectionModel
インスタンスm
の照会は次のコードで行います。ListSelectionListener[] lsls = (ListSelectionListener[])(m.getListeners(ListSelectionListener.class));
このようなリスナーがない場合は空の配列を返します。- 型パラメータ:
T
-EventListener
クラスの型がリクエストされています- パラメータ:
listenerType
- 要求されるリスナーの型;java.util.EventListener
の下位インタフェースを指定- 戻り値:
- このモデルに
FooListener
として登録されているすべてのオブジェクトの配列。またはこのようなリスナーが登録されていない場合は空の配列 - 例外:
ClassCastException
-listenerType
で、java.util.EventListener
を実装するクラスまたはインタフェースが指定されなかった場合- 導入されたバージョン:
- 1.3
- 関連項目:
getListSelectionListeners()
-
setLeadAnchorNotificationEnabled
public void setLeadAnchorNotificationEnabled(boolean flag)
leadAnchorNotificationEnabledフラグの値を設定します。- パラメータ:
flag
-leadAnchorNotificationEnabled
のブール値- 関連項目:
isLeadAnchorNotificationEnabled()
-
isLeadAnchorNotificationEnabled
public boolean isLeadAnchorNotificationEnabled()
leadAnchorNotificationEnabled
フラグの値を返します。leadAnchorNotificationEnabled
がtrueの場合、選択領域のすべての変更に加えて、先頭インデックスとアンカー・インデックスへの変更をカバーする境界を使用して、モデルは通知イベントを生成します。 フラグをfalseに設定すると、最後の変更後に選択または選択解除された要素のみを含むように、イベントの境界を限定できます。 どの方法でも、モデルは先頭変数とアンカー変数を内部的に管理し続けます。 デフォルトは、trueです。ノート: 先頭またはアンカーは、選択領域に変更を加えなくても変更できます。 これらの変更の通知は、ビュー内で新しい先頭やアンカーを更新する必要がある場合などに重要です。 したがって、デフォルト値を変更するときはよく注意してください。
- 戻り値:
leadAnchorNotificationEnabled
フラグの値- 関連項目:
setLeadAnchorNotificationEnabled(boolean)
-
setSelectionInterval
public void setSelectionInterval(int index0, int index1)
選択範囲をindex0
以上index1
以下に変更します。index0
はindex1
以下でなくてもかまいません。SINGLE_SELECTION
選択モードでは、2番目のインデックスだけが使用されます。これによって現在の選択範囲が変更される場合には、各
ListSelectionListener
に変更が通知されます。どちらかのインデックスが
-1
である場合、このメソッドは何も行わず、例外なしで返されます。 それ以外の場合、一方のインデックスが-1
より小さい場合、IndexOutOfBoundsException
がスローされます。- 定義:
setSelectionInterval
、インタフェースListSelectionModel
- パラメータ:
index0
- 範囲の一方の端の値。index1
- 範囲の他方の端の値- 例外:
IndexOutOfBoundsException
- 一方のインデックスが-1
より小さい場合(かつ、どちらのインデックスも-1
でない場合)- 関連項目:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
-
addSelectionInterval
public void addSelectionInterval(int index0, int index1)
選択範囲を、現在の選択範囲とindex0
以上index1
以下のインデックスの示す範囲との和集合に変更します。SINGLE_SELECTION
選択モードでは、これはsetSelectionInterval
の呼び出しと同等で、2番目のインデックスだけが使用されます。SINGLE_INTERVAL_SELECTION
選択モードでは、このメソッドは、指定された区間が既存の選択範囲に隣接していたりオーバーラップしていたりしないかぎりsetSelectionInterval
と同様に動作するため、範囲を拡張する目的で使用できます。これによって現在の選択範囲が変更される場合には、各
ListSelectionListener
に変更が通知されます。 ただし、index0
はindex1
以下でなくてもかまいません。どちらかのインデックスが
-1
である場合、このメソッドは何も行わず、例外なしで返されます。 それ以外の場合、一方のインデックスが-1
より小さい場合、IndexOutOfBoundsException
がスローされます。- 定義:
addSelectionInterval
、インタフェースListSelectionModel
- パラメータ:
index0
- 範囲の一方の端の値。index1
- 範囲の他方の端の値- 例外:
IndexOutOfBoundsException
- 一方のインデックスが-1
より小さい場合(かつ、どちらのインデックスも-1
でない場合)- 関連項目:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
,setSelectionInterval(int, int)
-
removeSelectionInterval
public void removeSelectionInterval(int index0, int index1)
選択範囲を、現在の選択範囲とindex0
以上index1
以下のインデックスの示す範囲との差集合に変更します。index0
はindex1
以下でなくてもかまいません。SINGLE_INTERVAL_SELECTION
選択モードでは、削除によって2つの不連続のセクションが生成される場合、削除範囲が選択範囲の末尾(値が大きいほうの端)まで拡張されます。 たとえば選択範囲が0-10
である場合、ユーザーが任意の順序でインデックス5,6
を指定すると、結果として得られる選択範囲は0-4
になります。これによって現在の選択範囲が変更される場合には、各
ListSelectionListener
に変更が通知されます。どちらかのインデックスが
-1
である場合、このメソッドは何も行わず、例外なしで返されます。 それ以外の場合、一方のインデックスが-1
より小さい場合、IndexOutOfBoundsException
がスローされます。- 定義:
removeSelectionInterval
、インタフェースListSelectionModel
- パラメータ:
index0
- 範囲の一方の端の値index1
- 範囲の他方の端の値- 例外:
IndexOutOfBoundsException
- 一方のインデックスが-1
より小さい場合(かつ、どちらのインデックスも-1
でない場合)- 関連項目:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
-
insertIndexInterval
public void insertIndexInterval(int index, int length, boolean before)
indexの前/後から始まるlengthインデックスを挿入します。 インデックスの値自体が選択され、選択モードがSINGLE_SELECTIONでない場合は、新しく挿入された項目をすべて選択済として設定します。 そうでない場合は未選択のままにします。 通常、このメソッドは、データ・モデル内の対応する変更に選択モデルを同期させるために呼び出されます。- 定義:
insertIndexInterval
、インタフェースListSelectionModel
- パラメータ:
index
- 区間の始まりlength
- 区間の長さbefore
-true
の場合、intervalはindex
の前に挿入され、それ以外の場合、intervalはindex
の後に挿入されます
-
removeIndexInterval
public void removeIndexInterval(int index0, int index1)
選択モデルから、index0とindex1を両端として含む区間のインデックスを削除します。 通常、このメソッドは、データ・モデル内の対応する変更に選択モデルを同期させるために呼び出されます。 index0は、(他の場合と同様に)index1以下である必要はありません。- 定義:
removeIndexInterval
、インタフェースListSelectionModel
- パラメータ:
index0
- 区間の始まりindex1
- 区間の終わり
-
toString
public String toString()
このオブジェクトのプロパティを表示および識別する文字列を返します。
-
clone
public Object clone() throws CloneNotSupportedException
この選択モデルの複製を、同じ選択状態で返します。listenerLists
は複製されません。- オーバーライド:
clone
、クラスObject
- 戻り値:
- このインスタンスの複製。
- 例外:
CloneNotSupportedException
- 選択モデルが、(a) Cloneableインタフェースを実装せず、また(b)clone
メソッドを定義しない場合。- 関連項目:
Cloneable
-
setAnchorSelectionIndex
public void setAnchorSelectionIndex(int anchorIndex)
アンカー選択インデックスを設定して、すべての選択値を変更しないままにします。 leadAnchorNotificationEnabledがtrueの場合、新旧のアンカー・セルを対象とする通知を送信します。- 定義:
setAnchorSelectionIndex
、インタフェースListSelectionModel
- パラメータ:
anchorIndex
- アンカー選択インデックス- 関連項目:
ListSelectionModel.getAnchorSelectionIndex()
,setLeadSelectionIndex(int)
-
moveLeadSelectionIndex
public void moveLeadSelectionIndex(int leadIndex)
先頭の選択インデックスを設定して、すべての選択値を未変更のままにします。 leadAnchorNotificationEnabledがtrueの場合、新旧の先頭セルを対象とする通知を送信します。- パラメータ:
leadIndex
- 新しい先頭の選択インデックス- 導入されたバージョン:
- 1.5
- 関連項目:
setAnchorSelectionIndex(int)
,setLeadSelectionIndex(int)
,ListSelectionModel.getLeadSelectionIndex()
-
setLeadSelectionIndex
public void setLeadSelectionIndex(int leadIndex)
先頭の選択インデックスを設定し、アンカーと新しい先頭の間の値が、すべて選択またはすべて選択解除のどちらかであることを保証します。 アンカー・インデックスの値を選択すると、[anchor, oldLeadIndex]範囲内のすべての値をまずクリアしてから、[anchor, newLeadIndex]範囲内のすべての値を選択します。oldLeadIndexは古いleadIndexを表し、newLeadIndexは新しいleadIndexを表します。アンカー・インデックスの値が選択されていない場合は、同じことを逆に行います。つまり、古い範囲の値を選択してから新しい範囲の値を選択解除します。
この変更のイベントを1つ生成し、すべてのリスナーに通知します。 このイベント内で最小限の境界を生成するために、1回のパスで操作を行います。この方法では、ブロードキャストされたListSelectionEvent内の先頭と末尾のインデックスは、このメソッドによって実際に値が変更されたセルを参照します。 この操作を2回のステップで処理すると、選択状態の効果は同じでも、2つのイベントが生成されてしまいます。さらに、後で設定する目的でのみクリアされるセルが発生してしまい、変更対象の値に関連して操作される領域が広くなります。
このメソッドをUIクラスの
mouseDragged
メソッドで使うと、選択を拡張できます。- 定義:
setLeadSelectionIndex
、インタフェースListSelectionModel
- パラメータ:
leadIndex
- リード選択インデックス- 関連項目:
ListSelectionModel.getLeadSelectionIndex()
,setAnchorSelectionIndex(int)
-
-