JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 DefaultListSelectionModel

java.lang.Object
  繼承者 javax.swing.DefaultListSelectionModel
所有已實作的介面:
Serializable, Cloneable, ListSelectionModel

public class DefaultListSelectionModel
extends Object
implements ListSelectionModel, Cloneable, Serializable

列表選擇的預設資料模型。

警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

另請參見:
ListSelectionModel

欄位摘要
protected  boolean leadAnchorNotificationEnabled
           
protected  EventListenerList listenerList
           
 
從介面 javax.swing.ListSelectionModel 繼承的欄位
MULTIPLE_INTERVAL_SELECTION, SINGLE_INTERVAL_SELECTION, SINGLE_SELECTION
 
建構子摘要
DefaultListSelectionModel()
           
 
方法摘要
 void addListSelectionListener(ListSelectionListener l)
          將偵聽器添加到每次在選擇發生更改時都得到通知的列表。
 void addSelectionInterval(int index0, int index1)
          將選擇更改為當前選擇與 index0index1(包括)之間索引的並集。
 void clearSelection()
          將該選擇更改為空集。
 Object clone()
          返回此選擇模型的具有相同選擇的副本。
protected  void fireValueChanged(boolean isAdjusting)
          通知偵聽器已經結束了一系列的調整。
protected  void fireValueChanged(int firstIndex, int lastIndex)
          通知 ListSelectionListener 選擇的值已發生更改,該值在 firstIndexlastIndex 組成的閉區間內。
protected  void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
           
 int getAnchorSelectionIndex()
          從對 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近調用中返回第一個索引參數。
 int getLeadSelectionIndex()
          從對 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近調用中返回第二個索引參數。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回當前已在此模型上註冊為 FooListener 的所有物件組成的陣列。
 ListSelectionListener[] getListSelectionListeners()
          返回已在此 DefaultListSelectionModel 上註冊的所有列表選擇偵聽器組成的陣列。
 int getMaxSelectionIndex()
          返回最後選擇的索引,如果選擇為空,則返回 -1。
 int getMinSelectionIndex()
          返回第一個選擇的索引,如果選擇為空,則返回 -1。
 int getSelectionMode()
          返回當前選擇網要。
 boolean getValueIsAdjusting()
          如果選擇在進行一系列更改,則返回 true
 void insertIndexInterval(int index, int length, boolean before)
          從 index 之前/之後開始插入 length 個索引。
 boolean isLeadAnchorNotificationEnabled()
          返回 leadAnchorNotificationEnabled 標誌的值。
 boolean isSelectedIndex(int index)
          如果選擇了指定的索引,則返回 true。
 boolean isSelectionEmpty()
          如果沒有選擇索引,則返回 true。
 void moveLeadSelectionIndex(int leadIndex)
          設置 lead 選擇索引,並不作更改地保留所有選擇值。
 void removeIndexInterval(int index0, int index1)
          從選擇模型中移除 index0,index1 區間中(包括兩端點)的索引。
 void removeListSelectionListener(ListSelectionListener l)
          將偵聽器從每次在選擇發生更改時都得到通知的列表中移除。
 void removeSelectionInterval(int index0, int index1)
          將選擇更改為當前選擇與 index0index1(包括)之間索引的差集。
 void setAnchorSelectionIndex(int anchorIndex)
          設置 anchor 選擇索引,並不作更改地保留所有選擇值。
 void setLeadAnchorNotificationEnabled(boolean flag)
          設置 leadAnchorNotificationEnabled 標誌的值。
 void setLeadSelectionIndex(int leadIndex)
          設置 lead 選擇索引,確保 anchor 和新 lead 之間的值要麼全部被選定,要麼全部被取消選定。
 void setSelectionInterval(int index0, int index1)
          將選擇更改為 index0index1(包括)的範圍之間。
 void setSelectionMode(int selectionMode)
          設置選擇網要。
 void setValueIsAdjusting(boolean isAdjusting)
          設置 valueIsAdjusting 屬性,指示即將進行的選擇更改是否應該被視為單個更改的一部分。
 String toString()
          返回顯示並標識此物件的屬性的字元串。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

listenerList

protected EventListenerList listenerList

leadAnchorNotificationEnabled

protected boolean leadAnchorNotificationEnabled
建構子詳細資訊

DefaultListSelectionModel

public DefaultListSelectionModel()
方法詳細資訊

getMinSelectionIndex

public int getMinSelectionIndex()
返回第一個選擇的索引,如果選擇為空,則返回 -1。

指定者:
介面 ListSelectionModel 中的 getMinSelectionIndex

getMaxSelectionIndex

public int getMaxSelectionIndex()
返回最後選擇的索引,如果選擇為空,則返回 -1。

指定者:
介面 ListSelectionModel 中的 getMaxSelectionIndex

getValueIsAdjusting

public boolean getValueIsAdjusting()
如果選擇在進行一系列更改,則返回 true

指定者:
介面 ListSelectionModel 中的 getValueIsAdjusting
返回:
如果選擇在進行一系列更改,則返回 true
另請參見:
ListSelectionModel.setValueIsAdjusting(boolean)

getSelectionMode

public int getSelectionMode()
返回當前選擇網要。

指定者:
介面 ListSelectionModel 中的 getSelectionMode
返回:
當前選擇網要
另請參見:
ListSelectionModel.setSelectionMode(int)

setSelectionMode

public void setSelectionMode(int selectionMode)
設置選擇網要。以下列表描述了接受的選擇網要:

指定者:
介面 ListSelectionModel 中的 setSelectionMode
拋出:
IllegalArgumentException - 如果選擇網要不是允許的網要之一
另請參見:
ListSelectionModel.getSelectionMode()

isSelectedIndex

public boolean isSelectedIndex(int index)
如果選擇了指定的索引,則返回 true。

指定者:
介面 ListSelectionModel 中的 isSelectedIndex

isSelectionEmpty

public boolean isSelectionEmpty()
如果沒有選擇索引,則返回 true。

指定者:
介面 ListSelectionModel 中的 isSelectionEmpty

addListSelectionListener

public void addListSelectionListener(ListSelectionListener l)
將偵聽器添加到每次在選擇發生更改時都得到通知的列表。

指定者:
介面 ListSelectionModel 中的 addListSelectionListener
參數:
l - ListSelectionListener
另請參見:
ListSelectionModel.removeListSelectionListener(javax.swing.event.ListSelectionListener), ListSelectionModel.setSelectionInterval(int, int), ListSelectionModel.addSelectionInterval(int, int), ListSelectionModel.removeSelectionInterval(int, int), ListSelectionModel.clearSelection(), ListSelectionModel.insertIndexInterval(int, int, boolean), ListSelectionModel.removeIndexInterval(int, int)

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener l)
將偵聽器從每次在選擇發生更改時都得到通知的列表中移除。

指定者:
介面 ListSelectionModel 中的 removeListSelectionListener
參數:
l - ListSelectionListener
另請參見:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)

getListSelectionListeners

public ListSelectionListener[] getListSelectionListeners()
返回已在此 DefaultListSelectionModel 上註冊的所有列表選擇偵聽器組成的陣列。

返回:
此模型的所有 ListSelectionListener,如果當前沒有已註冊的列表選擇偵聽器,則返回一個空陣列。
從以下版本開始:
1.4
另請參見:
addListSelectionListener(javax.swing.event.ListSelectionListener), removeListSelectionListener(javax.swing.event.ListSelectionListener)

fireValueChanged

protected void fireValueChanged(boolean isAdjusting)
通知偵聽器已經結束了一系列的調整。


fireValueChanged

protected void fireValueChanged(int firstIndex,
                                int lastIndex)
通知 ListSelectionListener 選擇的值已發生更改,該值在 firstIndexlastIndex 組成的閉區間內。


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 方法註冊的。

可以使用 class 文字值來指定 listenerType 參數,如 FooListener.class。例如,可以使用下面的程式碼查詢 DefaultListSelectionModel 實例 m 的列表選擇偵聽器:

ListSelectionListener[] lsls = (ListSelectionListener[])(m.getListeners(ListSelectionListener.class));
如果不存在這樣的偵聽器,則此方法將返回一個空陣列。

參數:
listenerType - 請求的偵聽器型別;該參數應該指定一個從 java.util.EventListener 繼承的介面
返回:
在此模型上註冊為 FooListener 的所有物件組成的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
拋出:
ClassCastException - 如果 listenerType 沒有指定實作 java.util.EventListener 的類別或介面
從以下版本開始:
1.3
另請參見:
getListSelectionListeners()

setLeadAnchorNotificationEnabled

public void setLeadAnchorNotificationEnabled(boolean flag)
設置 leadAnchorNotificationEnabled 標誌的值。

另請參見:
isLeadAnchorNotificationEnabled()

isLeadAnchorNotificationEnabled

public boolean isLeadAnchorNotificationEnabled()
返回 leadAnchorNotificationEnabled 標誌的值。當 leadAnchorNotificationEnabled 為 true 時,該模型產生具有限定範圍的通知事件,該範圍覆寫對選擇所做的所有更改以及對 lead 和 anchor 索引所做的更改。將標誌設置為 false 會導致事件的限定範圍縮小,使其只包括那些已選擇的或自上一次更改之後取消選擇的元素。總之,該模型將繼續內部維護 lead 和 anchor 變數。預設值為 true。

註:在不更改選擇的情況下更改 lead 或 anchor 是有可能的。通知這些更改常常很重要,比如需要在視圖中更新新的 lead 或 anchor 時。因此,在更改預設值時,一定要小心謹慎。

返回:
leadAnchorNotificationEnabled 標誌的值
另請參見:
setLeadAnchorNotificationEnabled(boolean)

clearSelection

public void clearSelection()
將該選擇更改為空集。如果這表示對當前選擇的更改,則通知每個 ListSelectionListener。

指定者:
介面 ListSelectionModel 中的 clearSelection
另請參見:
ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)

setSelectionInterval

public void setSelectionInterval(int index0,
                                 int index1)
將選擇更改為 index0index1(包括)的範圍之間。index0 不必小於等於 index1

SINGLE_SELECTION 選擇網要中,只使用第二個索引。

如果這表示對當前選擇的更改,那麼將向每個 ListSelectionListener 通知更改。

如果任一索引為 -1,則此方法不執行任何操作,並不帶任何異常地返回。如果任一索引小於 -1,則拋出 IndexOutOfBoundsException

指定者:
介面 ListSelectionModel 中的 setSelectionInterval
參數:
index0 - 區間的一端
index1 - 區間的另一端
拋出:
IndexOutOfBoundsException - 如果任一索引小於 -1(並且兩個索引都不為 -1
另請參見:
addListSelectionListener(javax.swing.event.ListSelectionListener)

addSelectionInterval

public void addSelectionInterval(int index0,
                                 int index1)
將選擇更改為當前選擇與 index0index1(包括)之間索引的並集。

SINGLE_SELECTION 選擇網要中,此方法等效於調用 setSelectionInterval,並且只使用第二個索引。在 SINGLE_INTERVAL_SELECTION 選擇網要中,此方法與 setSelectionInterval 的作用完全相同,除非給定區間緊接現有選擇或與現有選擇重疊從而可用於增大它。

如果這表示對當前選擇的更改,那麼將向每個 ListSelectionListener 通知更改。注意,index0 不必小於等於 index1

如果任一索引為 -1,則此方法不執行任何操作,並不帶任何異常地返回。如果任一索引小於 -1,則拋出 IndexOutOfBoundsException

指定者:
介面 ListSelectionModel 中的 addSelectionInterval
參數:
index0 - 區間的一端
index1 - 區間的另一端
拋出:
IndexOutOfBoundsException - 如果任一索引小於 -1(並且兩個索引都不為 -1
另請參見:
addListSelectionListener(javax.swing.event.ListSelectionListener), setSelectionInterval(int, int)

removeSelectionInterval

public void removeSelectionInterval(int index0,
                                    int index1)
將選擇更改為當前選擇與 index0index1(包括)之間索引的差集。index0 不必小於等於 index1

SINGLE_INTERVAL_SELECTION 選擇網要中,如果移除操作將產生兩個不相交的選擇,則移除操作將通過該選擇較大的一端延伸。例如,如果選擇為 0-10,提供索引 5,6(按任意順序),則所得選擇為 0-4

如果這表示對當前選擇的更改,那麼將向每個 ListSelectionListener 通知更改。

如果任一索引為 -1,則此方法不執行任何操作,並不帶任何異常地返回。如果任一索引小於 -1,則拋出 IndexOutOfBoundsException

指定者:
介面 ListSelectionModel 中的 removeSelectionInterval
參數:
index0 - 區間的一端
index1 - 區間的另一端
拋出:
IndexOutOfBoundsException - 如果任一索引小於 -1(並且兩個索引都不為 -1
另請參見:
addListSelectionListener(javax.swing.event.ListSelectionListener)

insertIndexInterval

public void insertIndexInterval(int index,
                                int length,
                                boolean before)
從 index 之前/之後開始插入 length 個索引。如果 index 處的值本身處於已選狀態,並且選擇網要不是 SINGLE_SELECTION,則將新插入的所有項都設置為已選狀態。否則將它們都設置為未選擇狀態。通常調用此方法來同步選擇模型與資料模型中的相應更改。

指定者:
介面 ListSelectionModel 中的 insertIndexInterval

removeIndexInterval

public void removeIndexInterval(int index0,
                                int index1)
從選擇模型中移除 index0,index1 區間中(包括兩端點)的索引。通常調用此方法來同步選擇模型與資料模型中的相應更改。注意,同往常一樣,index0 不必 <= index1。

指定者:
介面 ListSelectionModel 中的 removeIndexInterval

setValueIsAdjusting

public void setValueIsAdjusting(boolean isAdjusting)
設置 valueIsAdjusting 屬性,指示即將進行的選擇更改是否應該被視為單個更改的一部分。此屬性的值用於初始化產生 ListSelectionEventvalueIsAdjusting 屬性。

例如,如果選擇被更新以回應一個使用者的拖動,那麼在拖動開始時,此屬性被設置為 true;在拖動結束時被設置為 false。在拖動期間,偵聽器接收 valueIsAdjusting 屬性設置為 true 的事件。在拖動的最後,當更改終止時,偵聽器接收一個值設置為 false 的事件。如果只在更改已終止時希望更新,則偵聽器可以使用此網要。

將此屬性設置為 true 將開始一系列將被視為單個更改一部分的更改。當該屬性更改回 false 時,發送一個表現整個選擇更改特徵的事件(如果有),該事件的 valueIsAdjusting 屬性設置為 false

指定者:
介面 ListSelectionModel 中的 setValueIsAdjusting
參數:
isAdjusting - 屬性的新值
另請參見:
ListSelectionModel.getValueIsAdjusting(), ListSelectionEvent.getValueIsAdjusting()

toString

public String toString()
返回顯示並標識此物件的屬性的字元串。

覆寫:
類別 Object 中的 toString
返回:
此物件的 String 表示形式

clone

public Object clone()
             throws CloneNotSupportedException
返回此選擇模型的具有相同選擇的副本。listenerList 沒有被複製。

覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
拋出:
CloneNotSupportedException - 如果選擇模型沒有 (a) 實作 Cloneable 介面且 (b) 定義一個 clone 方法。
另請參見:
Cloneable

getAnchorSelectionIndex

public int getAnchorSelectionIndex()
從對 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近調用中返回第一個索引參數。最近的 index0 被認為是 "anchor",最近的 index1 被認為是 "lead"。一些介面特別地顯示這些索引,例如,Windows95 顯示帶有黃色點式輪廓的 lead 索引。

指定者:
介面 ListSelectionModel 中的 getAnchorSelectionIndex
另請參見:
ListSelectionModel.getLeadSelectionIndex(), ListSelectionModel.setSelectionInterval(int, int), ListSelectionModel.addSelectionInterval(int, int)

getLeadSelectionIndex

public int getLeadSelectionIndex()
從對 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近調用中返回第二個索引參數。

指定者:
介面 ListSelectionModel 中的 getLeadSelectionIndex
另請參見:
ListSelectionModel.getAnchorSelectionIndex(), ListSelectionModel.setSelectionInterval(int, int), ListSelectionModel.addSelectionInterval(int, int)

setAnchorSelectionIndex

public void setAnchorSelectionIndex(int anchorIndex)
設置 anchor 選擇索引,並不作更改地保留所有選擇值。如果 leadAnchorNotificationEnabled 為 true,則發送一個覆寫原有 anchor 單元格和新 anchor 單元格的通知。

指定者:
介面 ListSelectionModel 中的 setAnchorSelectionIndex
另請參見:
getAnchorSelectionIndex(), setLeadSelectionIndex(int)

moveLeadSelectionIndex

public void moveLeadSelectionIndex(int leadIndex)
設置 lead 選擇索引,並不作更改地保留所有選擇值。如果 leadAnchorNotificationEnabled 為 true,則發送一個覆寫原有 lead 單元格和新 lead 單元格的通知。

參數:
leadIndex - 新的 lead 選擇索引
從以下版本開始:
1.5
另請參見:
setAnchorSelectionIndex(int), setLeadSelectionIndex(int), getLeadSelectionIndex()

setLeadSelectionIndex

public void setLeadSelectionIndex(int leadIndex)
設置 lead 選擇索引,確保 anchor 和新 lead 之間的值要麼全部被選定,要麼全部被取消選定。如果 anchor 索引處的值被選定,則首先清除範圍 [anchor, oldLeadIndex] 中的所有值,然後選擇範圍 [anchor, newLeadIndex] 中的所有值,其中 oldLeadIndex 是原有的 leadIndex,newLeadIndex 是新的 leadIndex。

如果 anchor 索引處的值未被選定,則反過來執行上述操作:選擇原有範圍中的值,並取消選擇新範圍中的值。

為此更改產生一個事件,並通知所有偵聽器。為了在此事件中產生最小的限定範圍,要一次完成該操作;那樣廣播的 ListSelectionEvent 中第一個和最後一個索引將指出由於此方法而實際更改了其值的單元格。如果分兩步完成此操作,則選擇狀態上的效果將是相同的,但會產生兩個事件,更改值的限定範圍變得更寬,包括之前已清除但稍後又被設置的單元格。

可以在 UI 類別的 mouseDragged 方法中使用此方法來擴展選擇。

指定者:
介面 ListSelectionModel 中的 setLeadSelectionIndex
另請參見:
getLeadSelectionIndex(), setAnchorSelectionIndex(int)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only