Module  javafx.controls
软件包  javafx.scene.control

Class SelectionModel<T>

  • 参数类型
    T - 可以选择的控件中包含的项目的类型。
    已知直接子类:
    MultipleSelectionModelSingleSelectionModel


    public abstract class SelectionModel<T>
    extends Object
    SelectionModel是UI控件用来提供一致的API来维护选择的抽象类。
    从以下版本开始:
    JavaFX 2.0
    • 构造方法摘要

      构造方法  
      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()只要选择的变化,而这也将在单一的选择的情况下工作,被告知。

        另请参见:
        getSelectedIndex()setSelectedIndex(int)
      • selectedItem

        public final ReadOnlyObjectProperty<T> selectedItemProperty

        指所选项目属性,用于指示选择模型中当前选定的项目。 所选项目为空,表示没有选择项,或从选择模型关联的控件的底层数据模型中检索到的对象。

        当选择模型设置为单次选择时,所选项目属性最常用,但在多选模式下同等适用。 在此模式下,所选项目将始终代表最后选择。

        另请参见:
        getSelectedItem()setSelectedItem(T)
    • 构造方法详细信息

      • SelectionModel

        public SelectionModel​()
        创建一个默认的SelectionModel实例。
    • 方法详细信息

      • selectedIndexProperty

        public final ReadOnlyIntegerProperty selectedIndexProperty​()

        指所选索引属性,用于指示选择模型中当前选定的索引值。 选择的索引为-1,表示没有选择,或者在基础数据模型大小的范围内的整数值。

        当选择模型仅允许单次选择时,所选索引属性最常用,但在多选模式下同样适用。 在这种模式下,所选择的索引将始终代表最后一个选择。

        请注意,在多项选择的情况下,可以添加一个ListChangeListener被返回的集合MultipleSelectionModel.getSelectedIndices()只要选择的变化,而这也将在单一的选择的情况下工作,被告知。

        另请参见:
        getSelectedIndex()setSelectedIndex(int)
      • 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,则该方法将具有选择最后一个索引的结果,同时保留对其他当前选定索引的选择。

        如果最后一个索引已经被选中,调用该方法将不会有结果,并且不会发生选择事件。