- java.lang.Object
-
- javafx.scene.control.SelectionModel<T>
-
- 参数类型
-
T
- 可以选择的控件中包含的项目的类型。
- 已知直接子类:
-
MultipleSelectionModel
,SingleSelectionModel
public abstract class SelectionModel<T> extends Object
SelectionModel是UI控件用来提供一致的API来维护选择的抽象类。- 从以下版本开始:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property 描述 ReadOnlyIntegerProperty
selectedIndex
指所选索引属性,用于指示选择模型中当前选定的索引值。ReadOnlyObjectProperty<T>
selectedItem
指所选项目属性,用于指示选择模型中当前选定的项目。
-
构造方法摘要
构造方法 Constructor 描述 SelectionModel()
创建一个默认的SelectionModel实例。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract void
clearAndSelect(int index)
在将选择设置为给定索引之前清除任何选择的方法。abstract void
clearSelection()
清除所有选定索引的选择模型。abstract void
clearSelection(int index)
该方法将清除给定索引中项目的选择。int
getSelectedIndex()
返回此模型中指示当前所选索引的整数值。T
getSelectedItem()
返回当前选定的对象(位于所选索引位置)。abstract boolean
isEmpty()
该方法可用于测试是否有任何选定的索引/项目。abstract boolean
isSelected(int index)
通知此SelectionModel中当前选定给定索引的方便方法。abstract void
select(int index)
这将在选择模型中选择给定的索引,假设索引在有效范围内(即大于或等于零,并且小于底层数据模型中的项目总数)。abstract void
select(T obj)
此方法将尝试选择包含给定对象的索引。ReadOnlyIntegerProperty
selectedIndexProperty()
指所选索引属性,用于指示选择模型中当前选定的索引值。ReadOnlyObjectProperty<T>
selectedItemProperty()
指所选项目属性,用于指示选择模型中当前选定的项目。abstract void
selectFirst()
该方法将尝试选择控件中的第一个索引。abstract void
selectLast()
此方法将尝试选择控件中的最后一个索引。abstract void
selectNext()
此方法将尝试在当前焦点索引之后直接选择索引。abstract void
selectPrevious()
此方法将尝试直接在当前聚焦索引之前选择索引。protected void
setSelectedIndex(int value)
设置属性selectedIndex的值。protected void
setSelectedItem(T value)
设置属性selectedItem的值。
-
-
-
Property Detail
-
selectedIndex
public final ReadOnlyIntegerProperty selectedIndexProperty
指所选索引属性,用于指示选择模型中当前选定的索引值。 选择的索引为-1,表示没有选择,或者在基础数据模型大小的范围内的整数值。
当选择模型仅允许单次选择时,所选索引属性最常用,但在多选模式下同样适用。 在这种模式下,所选择的索引将始终代表最后一个选择。
请注意,在多项选择的情况下,可以添加一个
ListChangeListener
被返回的集合MultipleSelectionModel.getSelectedIndices()
只要选择的变化,而这也将在单一的选择的情况下工作,被告知。
-
selectedItem
public final ReadOnlyObjectProperty<T> selectedItemProperty
指所选项目属性,用于指示选择模型中当前选定的项目。 所选项目为空,表示没有选择项,或从选择模型关联的控件的底层数据模型中检索到的对象。
当选择模型设置为单次选择时,所选项目属性最常用,但在多选模式下同等适用。 在此模式下,所选项目将始终代表最后选择。
- 另请参见:
-
getSelectedItem()
,setSelectedItem(T)
-
-
方法详细信息
-
selectedIndexProperty
public final ReadOnlyIntegerProperty selectedIndexProperty()
指所选索引属性,用于指示选择模型中当前选定的索引值。 选择的索引为-1,表示没有选择,或者在基础数据模型大小的范围内的整数值。
当选择模型仅允许单次选择时,所选索引属性最常用,但在多选模式下同样适用。 在这种模式下,所选择的索引将始终代表最后一个选择。
请注意,在多项选择的情况下,可以添加一个
ListChangeListener
被返回的集合MultipleSelectionModel.getSelectedIndices()
只要选择的变化,而这也将在单一的选择的情况下工作,被告知。
-
setSelectedIndex
protected final void setSelectedIndex(int value)
设置属性selectedIndex的值。- Property description:
-
指所选索引属性,用于指示选择模型中当前选定的索引值。 选择的索引为-1,表示没有选择,或者在基础数据模型大小的范围内的整数值。
当选择模型仅允许单次选择时,所选索引属性最常用,但在多选模式下同样适用。 在这种模式下,所选择的索引将始终代表最后一个选择。
请注意,在多项选择的情况下,可以添加一个
ListChangeListener
被返回的集合MultipleSelectionModel.getSelectedIndices()
只要选择的变化,而这也将在单一的选择的情况下工作,被告知。
-
getSelectedIndex
public final int getSelectedIndex()
返回此模型中指示当前所选索引的整数值。 如果选择了多个项目,这将返回最近的选择。
请注意,返回值是时间上的快照 - 如果希望观察所选索引更改的选择模型,则可以添加ChangeListener:
SelectionModel sm = ...; InvalidationListener listener = ...; sm.selectedIndexProperty().addListener(listener);
- 结果
- 所选索引
-
selectedItemProperty
public final ReadOnlyObjectProperty<T> selectedItemProperty()
指所选项目属性,用于指示选择模型中当前选定的项目。 所选项目为空,表示没有选择项,或从选择模型关联的控件的底层数据模型中检索到的对象。
当选择模型设置为单次选择时,所选项目属性最常用,但在多选模式下同等适用。 在此模式下,所选项目将始终代表最后选择。
- 另请参见:
-
getSelectedItem()
,setSelectedItem(T)
-
setSelectedItem
protected final void setSelectedItem(T value)
设置属性selectedItem的值。- Property description:
-
指所选项目属性,用于指示选择模型中当前选定的项目。 所选项目为空,表示没有选择项,或从选择模型关联的控件的底层数据模型中检索到的对象。
当选择模型设置为单次选择时,所选项目属性最常用,但在多选模式下同等适用。 在此模式下,所选项目将始终代表最后选择。
-
getSelectedItem
public final T getSelectedItem()
返回当前选定的对象(位于所选索引位置)。 如果选择了多个项目,这将返回由getSelectedIndex()返回的索引所包含的对象(它始终是最近选定项目的索引)。请注意,返回的值是快照的快照 - 如果您希望观察所选项目的更改的选择模型,则可以添加ChangeListener:
SelectionModel sm = ...; InvalidationListener listener = ...; sm.selectedItemProperty().addListener(listener);
- 结果
- 所选项目
-
clearAndSelect
public abstract void clearAndSelect(int index)
在将选择设置为给定索引之前清除任何选择的方法。 该方法的目的是避免首先调用clearSelection()
,这意味着正在监听selected index
属性的观察者将不会将所选索引临时设置为-1。- 参数
-
index
- 应该是此选择模型中唯一选择的索引的索引。
-
select
public abstract void select(int index)
这将在选择模型中选择给定的索引,假设索引在有效范围内(即大于或等于零,并且小于底层数据模型中的项目总数)。
如果在此模型中已经选择了一个或多个索引,调用此方法将不会清除这些选择 - 为此,有必要首先调用
clearSelection()
。如果索引已被选中,则不会再次选择或未选择。 然而,如果实现了多个选择,则对已经选择的索引进行调用select将会使索引成为新的所选索引(由
getSelectedIndex()
返回)。- 参数
-
index
- 要在选择模型中选择的项目的位置。
-
select
public abstract void select(T obj)
此方法将尝试选择包含给定对象的索引。 它将遍历底层数据模型,直到找到一个值等于给定对象的项。 在这一点上它将停止迭代 - 这意味着该方法将不会选择多个索引。
- 参数
-
obj
- 要在底层数据模型中选择的对象。
-
clearSelection
public abstract void clearSelection(int index)
该方法将清除给定索引中项目的选择。 如果没有选择给定的索引,则不会发生任何事情。
- 参数
-
index
- 要取消选择的选定项目。
-
clearSelection
public abstract void clearSelection()
清除所有选定索引的选择模型。
-
isSelected
public abstract boolean isSelected(int index)
通知此SelectionModel中当前选定给定索引的方便方法。 功能上相当于调用
getSelectedIndices().contains(index)
。- 参数
-
index
- 检查当前是否选择的索引。 - 结果
- 如果给定的索引被选择,则为真,否则为false。
-
isEmpty
public abstract boolean isEmpty()
该方法可用于测试是否有任何选定的索引/项目。 如果没有选定的项目,它将返回true,如果有,则返回false。- 结果
- 如果 没有选择的项目将返回true,如果有的话将返回false。
-
selectPrevious
public abstract void selectPrevious()
此方法将尝试直接在当前聚焦索引之前选择索引。 如果没有首先调用clearSelection,则该方法将具有选择先前索引的结果,同时保留对其他当前选择的索引的选择。
调用此方法将仅在以下情况下成功:
- 目前有一个主角/重点指数。
- 主要/焦点指数不是控制中的第一个指标。
- 以前的索引尚未被选中。
如果这些条件中的任何一个都是假的,则不会发生选择事件。
-
selectNext
public abstract void selectNext()
此方法将尝试在当前焦点索引之后直接选择索引。 如果没有首先调用clearSelection,则该方法将具有选择下一个索引的结果,同时保留对任何其他当前选择的索引的选择。
调用此方法将仅在以下情况下成功:
- 目前有一个主角/重点指数。
- 主要/焦点指数不是控件中的最后一个指标。
- 下一个索引尚未被选中。
如果这些条件中的任何一个都是假的,则不会发生选择事件。
-
selectFirst
public abstract void selectFirst()
该方法将尝试选择控件中的第一个索引。 如果首先不调用clearSelection,则该方法将具有选择第一个索引的结果,同时保留对当前其他任何索引的选择。
如果已经选择了第一个索引,调用此方法将不会产生任何结果,并且不会执行选择事件。
-
selectLast
public abstract void selectLast()
此方法将尝试选择控件中的最后一个索引。 如果没有首先调用clearSelection,则该方法将具有选择最后一个索引的结果,同时保留对其他当前选定索引的选择。
如果最后一个索引已经被选中,调用该方法将不会有结果,并且不会发生选择事件。
-
-