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

Class ChoiceBox<T>

  • All Implemented Interfaces:
    StyleableEventTargetSkinnable


    @DefaultProperty("items")
    public class ChoiceBox<T>
    extends Control
    ChoiceBox用于向用户呈现一组相对较小的预定义选项,从中可以选择。 ChoiceBox在“显示”时将向用户显示这些选择,并允许他们选择一个选择。 当不显示时,显示当前选择。

    默认情况下,ChoiceBox没有选择任何项目,除非另有说明。 虽然ChoiceBox只允许用户从预定义的列表中进行选择,但开发人员可以将所选项目指定为除了预定义列表中可用的内容之外的其他项目。 这对于几个重要的用例是必需的。

    这意味着ChoiceBox的配置是独立的。 您可以指定项目,然后指定所选项目,或者您可以指定所选项目,然后指定项目。 无论哪种方式都能正常工作。

    ChoiceBox项目选择由SelectionModel处理与ListView和ComboBox一样,可以修改所使用的SelectionModel ,尽管这很可能很少更改。 ChoiceBox只支持一个选择模型,因此默认使用的是SingleSelectionModel

      import javafx.scene.control.ChoiceBox;
    
     ChoiceBox cb = new ChoiceBox();
     cb.getItems().addAll("item1", "item2", "item3"); 
    从以下版本开始:
    JavaFX 2.0
    • 字段详细信息

      • ON_SHOWING

        public static final EventType<Event> ON_SHOWING
        在选择框之前调用,在用户单击或以其他方式与ChoiceBox进行交互之后显示弹出窗口。
        从以下版本开始:
        JavaFX 8u60
      • ON_SHOWN

        public static final EventType<Event> ON_SHOWN
        在ChoiceBox显示弹出窗口后调用。
        从以下版本开始:
        JavaFX 8u60
      • ON_HIDING

        public static final EventType<Event> ON_HIDING
        调用的时候ChoiceBox弹出窗口 被隐藏。
        从以下版本开始:
        JavaFX 8u60
      • ON_HIDDEN

        public static final EventType<Event> ON_HIDDEN
        当ChoiceBox弹出窗口被隐藏时调用。
        从以下版本开始:
        JavaFX 8u60
    • 构造方法详细信息

      • ChoiceBox

        public ChoiceBox​()
        创建一个新的ChoiceBox,它有一个空的项目列表。
      • ChoiceBox

        public ChoiceBox​(ObservableList<T> items)
        使用给定的项目创建一个新的ChoiceBox。 由于可以观察到,此列表的内容可能会随时间而变化,并且ChoiceBox将相应更新。
        参数
        items - 一组项目
    • 方法详细信息

      • setSelectionModel

        public final void setSelectionModel​(SingleSelectionModel<T> value)
        设置属性selectionModel的值。
        Property description:
        ChoiceBox的选择模型。 只有一个选择可以做,因此,ChoiceBox只支持一个SingleSelectionModel。 通常,与选择模型的主要交互是明确地设置项目列表中哪个项目应该被选择,或者倾听选择中的变化以知道选择哪个项目。
      • getSelectionModel

        public final SingleSelectionModel<T> getSelectionModel​()
        获取属性selectionModel的值。
        Property description:
        ChoiceBox的选择模型。 只有一个选择可以做,因此,ChoiceBox只支持一个SingleSelectionModel。 通常,与选择模型的主要交互是明确地设置项目列表中哪个项目应该被选择,或者倾听选择中的变化以知道选择哪个项目。
      • selectionModelProperty

        public final ObjectProperty<SingleSelectionModel<T>> selectionModelProperty​()
        ChoiceBox的选择模型。 只有一个选择可以做,因此,ChoiceBox只支持一个SingleSelectionModel。 通常,与选择模型的主要交互是明确地设置项目列表中哪个项目应该被选择,或者倾听选择中的变化以知道选择哪个项目。
        另请参见:
        getSelectionModel()setSelectionModel(SingleSelectionModel)
      • isShowing

        public final boolean isShowing​()
        获取显示的属性的值。
        Property description:
        指示下拉列表是否向用户显示选择列表。 这是一个只读属性,它应该通过#show和#hide方法进行操作。
      • showingProperty

        public final ReadOnlyBooleanProperty showingProperty​()
        指示下拉列表是否向用户显示选择列表。 这是一个只读属性,它应该通过#show和#hide方法进行操作。
        另请参见:
        isShowing()
      • setItems

        public final void setItems​(ObservableList<T> value)
        设置属性项的值。
        Property description:
        要在选框中显示的项目。 所选项目(如选择模型中所示)必须始终为这些项目之一。
      • getItems

        public final ObservableList<T> getItems​()
        获取属性项的值。
        Property description:
        要在选框中显示的项目。 所选项目(如选择模型中所示)必须始终为这些项目之一。
      • converterProperty

        public ObjectProperty<StringConverter<T>> converterProperty​()
        允许一种方式来指定如何表示项目列表中的对象。 当设置StringConverter时,不调用对象toString方法,而是调用其toString(对象T),将对象传递到items列表中。 当在ChoiceBox中使用域对象时,这是有用的,因为此属性允许自定义表示。 此外,可以设置javafx.util.converter软件包中提供的任何预先构建的转换器。
        从以下版本开始:
        JavaFX 2.1
        另请参见:
        getConverter()setConverter(StringConverter)
      • setConverter

        public final void setConverter​(StringConverter<T> value)
        设置属性转换器的值。
        Property description:
        允许一种方式来指定如何表示项目列表中的对象。 当设置StringConverter时,不调用对象toString方法,而是调用其toString(对象T),将对象传递到items列表中。 当在ChoiceBox中使用域对象时,这是有用的,因为此属性允许自定义表示。 此外,可以设置javafx.util.converter包中提供的任何预构成的转换器。
        从以下版本开始:
        JavaFX 2.1
      • getConverter

        public final StringConverter<T> getConverter​()
        获取属性转换器的值。
        Property description:
        允许一种方式来指定如何表示项目列表中的对象。 当设置StringConverter时,不调用对象toString方法,而是调用其toString(对象T),将对象传递到items列表中。 当在ChoiceBox中使用域对象时,这是有用的,因为此属性允许自定义表示。 此外,可以设置javafx.util.converter包中提供的任何预构造转换器。
        从以下版本开始:
        JavaFX 2.1
      • valueProperty

        public ObjectProperty<T> valueProperty​()
        此ChoiceBox的值被定义为ChoiceBox选择模型中选定的项目。 valueProperty与selectedItem同步。 该属性允许将外部属性双向绑定到ChoiceBox,并相应地更新选择模型。
        从以下版本开始:
        JavaFX 2.1
        另请参见:
        getValue()setValue(T)
      • setValue

        public final void setValue​(T value)
        设置属性值的值。
        Property description:
        此ChoiceBox的值被定义为ChoiceBox选择模型中选定的项目。 valueProperty与selectedItem同步。 该属性允许将外部属性双向绑定到ChoiceBox,并相应地更新选择模型。
        从以下版本开始:
        JavaFX 2.1
      • getValue

        public final T getValue​()
        获取属性值的值。
        Property description:
        此ChoiceBox的值被定义为ChoiceBox选择模型中选定的项目。 valueProperty与selectedItem同步。 该属性允许将外部属性双向绑定到ChoiceBox,并相应地更新选择模型。
        从以下版本开始:
        JavaFX 2.1
      • setOnAction

        public final void setOnAction​(EventHandler<ActionEvent> value)
        设置属性onAction的值。
        Property description:
        ChoiceBox操作,每当更改ChoiceBox value属性时调用。 这可能是由于value属性被程序化地更改,或者当用户在弹出菜单中选择一个项目时。
        从以下版本开始:
        JavaFX 8u60
      • getOnAction

        public final EventHandler<ActionEvent> getOnAction​()
        获取属性onAction的值。
        Property description:
        ChoiceBox操作,每当更改ChoiceBox value属性时调用。 这可能是由于value属性被程序化地更改,或者当用户在弹出菜单中选择一个项目时。
        从以下版本开始:
        JavaFX 8u60
      • setOnShowing

        public final void setOnShowing​(EventHandler<Event> value)
        设置属性onShowing的值。
        Property description:
        ChoiceBox弹出窗口之前调用。
        从以下版本开始:
        JavaFX 8u60
      • getOnShowing

        public final EventHandler<Event> getOnShowing​()
        获取属性onShowing的值。
        Property description:
        ChoiceBox弹出窗口之前调用。
        从以下版本开始:
        JavaFX 8u60
      • setOnShown

        public final void setOnShown​(EventHandler<Event> value)
        设置属性onShown的值。
        Property description:
        ChoiceBox弹出窗口之后调用。
        从以下版本开始:
        JavaFX 8u60
      • getOnShown

        public final EventHandler<Event> getOnShown​()
        获取onShown属性的值。
        Property description:
        ChoiceBox弹出窗口之后调用。
        从以下版本开始:
        JavaFX 8u60
      • setOnHiding

        public final void setOnHiding​(EventHandler<Event> value)
        设置属性onHiding的值。
        Property description:
        被称为在ChoiceBox弹出窗口之前被隐藏。
        从以下版本开始:
        JavaFX 8u60
      • getOnHiding

        public final EventHandler<Event> getOnHiding​()
        获取属性onHiding的值。
        Property description:
        ChoiceBox弹出窗口之前被称为隐藏。
        从以下版本开始:
        JavaFX 8u60
      • setOnHidden

        public final void setOnHidden​(EventHandler<Event> value)
        设置属性onHidden的值。
        Property description:
        ChoiceBox弹出窗口之后刚刚被隐藏。
        从以下版本开始:
        JavaFX 8u60
      • getOnHidden

        public final EventHandler<Event> getOnHidden​()
        获取属性onHidden的值。
        Property description:
        ChoiceBox弹出窗口之后刚刚被隐藏。
        从以下版本开始:
        JavaFX 8u60
      • show

        public void show​()
        打开选择列表。
      • hide

        public void hide​()
        关闭选择列表。
      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        为此控件创建一个新的默认皮肤实例。 如果没有通过CSS -fx-skin提供皮肤或者在具有setSkin(...)的子类中显式设置,则调用此控件创建皮肤。
        重写:
        createDefaultSkinControl
        结果
        此控件的默认皮肤的新实例。 如果为null,则控件将没有皮肤,除非由css提供。
      • queryAccessibleAttribute

        public Object queryAccessibleAttribute​(AccessibleAttribute attribute,
                                               Object... parameters)
        该方法由辅助技术调用以请求属性的值。

        子类通常覆盖此方法来实现特定角色所需的属性。
        如果未处理特定属性,则必须调用超类实现。

        重写:
        queryAccessibleAttributeControl
        参数
        attribute - 请求的属性
        parameters - 可选参数列表
        结果
        请求的属性的值
        另请参见:
        AccessibleAttribute
      • executeAccessibleAction

        public void executeAccessibleAction​(AccessibleAction action,
                                            Object... parameters)
        该方法由辅助技术调用,请求执行由参数指示的动作。

        此方法通常被子类覆盖,以实现特定角色所需的操作。
        如果未处理特定操作,则必须调用超类实现。

        重写:
        executeAccessibleActionControl
        参数
        action - 执行的动作
        parameters - 可选参数列表
        另请参见:
        AccessibleAction