public interface ListSelectionModel
此接口表示任何组件的当前选择状态,该组件显示一个具有稳定索引的值列表。该选择被建模为一组区间,每个区间表示一个选定列表元素的连续范围。修改该组选定区间的方法都采用一对索引:index0 和 index1,这对索引表示一个闭区间,即该区间同时包括 index0 和 index1。
字段摘要 | |
---|---|
static int |
MULTIPLE_INTERVAL_SELECTION selectionMode 属性的值:一次选择一个或多个连续的索引范围。 |
static int |
SINGLE_INTERVAL_SELECTION selectionMode 属性的值:一次选择一个连续的索引范围。 |
static int |
SINGLE_SELECTION selectionMode 属性的值:一次选择一个列表索引。 |
方法摘要 | |
---|---|
void |
addListSelectionListener(ListSelectionListener x) 将侦听器添加到每次在选择发生更改时都得到通知的列表。 |
void |
addSelectionInterval(int index0, int index1) 将选择更改为当前选择与 index0 和 index1 之间(包括两者)索引的并集。 |
void |
clearSelection() 将该选择更改为空集。 |
int |
getAnchorSelectionIndex() 从对 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近调用中返回第一个索引参数。 |
int |
getLeadSelectionIndex() 从对 setSelectionInterval()、addSelectionInterval() 或 removeSelectionInterval() 的最近调用中返回第二个索引参数。 |
int |
getMaxSelectionIndex() 返回最后选择的索引,如果选择为空,则返回 -1。 |
int |
getMinSelectionIndex() 返回第一个选择的索引,如果选择为空,则返回 -1。 |
int |
getSelectionMode() 返回当前选择模式。 |
boolean |
getValueIsAdjusting() 如果选择在进行一系列更改,则返回 true 。 |
void |
insertIndexInterval(int index, int length, boolean before) 在 index 之前/之后开始插入 length 个索引。 |
boolean |
isSelectedIndex(int index) 如果选择了指定的索引,则返回 true。 |
boolean |
isSelectionEmpty() 如果没有选择索引,则返回 true。 |
void |
removeIndexInterval(int index0, int index1) 从选择模型中移除区间 index0、index1(包括)中的索引。 |
void |
removeListSelectionListener(ListSelectionListener x) 将侦听器从每次在选择发生更改时都得到通知的列表中移除。 |
void |
removeSelectionInterval(int index0, int index1) 将选择更改为当前选择与 index0 和 index1 之间(包括两者)索引的差集。 |
void |
setAnchorSelectionIndex(int index) 设置 anchor 选择索引。 |
void |
setLeadSelectionIndex(int index) 设置 lead 选择索引。 |
void |
setSelectionInterval(int index0, int index1) 将选择更改为在 index0 和 index1 之间(包括两者)。 |
void |
setSelectionMode(int selectionMode) 设置选择模式。 |
void |
setValueIsAdjusting(boolean valueIsAdjusting) 设置 valueIsAdjusting 属性,指示即将进行的选择更改是否应该被视为单个更改的一部分。 |
字段详细信息 |
---|
static final int SINGLE_SELECTION
setSelectionMode(int)
,
常量字段值
static final int SINGLE_INTERVAL_SELECTION
setSelectionMode(int)
,
常量字段值
static final int MULTIPLE_INTERVAL_SELECTION
setSelectionMode(int)
,
常量字段值
方法详细信息 |
---|
void setSelectionInterval(int index0, int index1)
index0
和
index1
之间(包括两者)。
index0
不必小于等于
index1
。
在 SINGLE_SELECTION
选择模式中,只使用第二个索引。
如果这表示对当前选择的更改,则通知每个 ListSelectionListener
该更改。
index0
- 区间的一端。
index1
- 区间的另一端
addListSelectionListener(javax.swing.event.ListSelectionListener)
void addSelectionInterval(int index0, int index1)
index0
和
index1
之间(包括两者)索引的并集。
index0
不必小于等于
index1
。
在 SINGLE_SELECTION
选择模式中,这等效于调用 setSelectionInterval
,并且只使用第二个索引。在 SINGLE_INTERVAL_SELECTION
选择模式中,此方法行为类似于 setSelectionInterval
,除非给定区间紧接现有选择或与现有选择重叠从而可用于增大该选择。
如果这表示对当前选择的更改,则通知每个 ListSelectionListener
该更改。
index0
- 区间的一端。
index1
- 区间的另一端
addListSelectionListener(javax.swing.event.ListSelectionListener)
,
setSelectionInterval(int, int)
void removeSelectionInterval(int index0, int index1)
index0
和
index1
之间(包括两者)索引的差集。
index0
不必小于等于
index1
。
在 SINGLE_INTERVAL_SELECTION
选择模式中,如果移除操作会生成两个不相交的选择,那么移除操作将延伸到选择的较大端。例如,如果选择是 0-10
,提供的索引是 5,6
(按任意顺序),则所得选择是 0-4
。
如果这表示对当前选择的更改,则通知每个 ListSelectionListener
该更改。
index0
- 区间的一端。
index1
- 区间的另一端
addListSelectionListener(javax.swing.event.ListSelectionListener)
int getMinSelectionIndex()
int getMaxSelectionIndex()
boolean isSelectedIndex(int index)
int getAnchorSelectionIndex()
void setAnchorSelectionIndex(int index)
int getLeadSelectionIndex()
void setLeadSelectionIndex(int index)
getLeadSelectionIndex()
void clearSelection()
boolean isSelectionEmpty()
void insertIndexInterval(int index, int length, boolean before)
void removeIndexInterval(int index0, int index1)
void setValueIsAdjusting(boolean valueIsAdjusting)
valueIsAdjusting
属性,指示即将进行的选择更改是否应该被视为单个更改的一部分。此属性的值用于初始化生成
ListSelectionEvent
的
valueIsAdjusting
属性。
例如,如果选择被更新以响应一个用户的拖动,那么在拖动开始时,此属性被设置为 true
;在拖动结束时被设置为 false
。在拖动期间,侦听器接收 valueIsAdjusting
属性设置为 true
的事件。在拖动的最后,当更改终止时,侦听器接收一个值设置为 false
的事件。如果只在更改已终止时希望更新,则侦听器可以使用此模式。
将此属性设置为 true
将开始一系列将被视为单个更改一部分的更改。当该属性更改回 false
时,发送一个表现整个选择更改特征的事件(如果有),该事件的 valueIsAdjusting
属性设置为 false
。
valueIsAdjusting
- 属性的新值
getValueIsAdjusting()
,
ListSelectionEvent.getValueIsAdjusting()
boolean getValueIsAdjusting()
true
。
setValueIsAdjusting(boolean)
void setSelectionMode(int selectionMode)
ListSelectionModel.SINGLE_SELECTION
- 一次只能选择一个列表索引。在此模式中,setSelectionInterval
和 addSelectionInterval
是等效的,两者都使用第二个参数(“lead”)所表示的索引来替换当前选择。 ListSelectionModel.SINGLE_INTERVAL_SELECTION
- 一次只能选择一个连续索引区间。在此模式中,addSelectionInterval
行为类似于 setSelectionInterval
(替换当前选择),除非给定区间紧接现有选择或与现有选择重叠从而可用于增大该选择。 ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
- 在此模式中,对选择内容无任何限制。
IllegalArgumentException
- 如果选择模式不是允许的模式之一
getSelectionMode()
int getSelectionMode()
setSelectionMode(int)
void addListSelectionListener(ListSelectionListener x)
void removeListSelectionListener(ListSelectionListener x)
x
- ListSelectionListener
addListSelectionListener(javax.swing.event.ListSelectionListener)