ChoiceBox是JavaFX软件包的一部分。 ChoiceBox显示一组项目,并允许用户选择一个选项,它将在顶部显示当前选择的项目。默认情况下,ChoiceBox没有选定项,除非另有选择。既可以先指定项目,然后再指定选定的项目,也可以先指定选定的项目,然后再指定项目。
ChoiceBox类的构造方法是:
- ChoiceBox():创建一个新的空ChoiceBox。
- ChoiceBox(ObservableList items):使用给定的项目集创建一个新的ChoiceBox。
常用方法:
方法 | 说明 |
---|---|
getItems() | 获取属性项的值。 |
getValue() | 获取属性值的值。 |
hide() | 关闭选项列表。 |
setItems(ObservableList value) | 设置属性项的值。 |
setValue(T value) | 设置属性值的值。 |
show() | 打开选项列表。 |
下面的程序说明ChoiceBox的用法:
- 程序创建一个ChoiceBox并向其中添加项目:此程序创建一个名为c的ChoiceBox,并使用(ChoiceBox(FXCollections.observableArrayList(string_array)))向其中添加一个字符串列表。我们将选择内容和标签添加到平铺窗格(getChildren().add()函数)。然后,我们将创建一个舞台(容器),并将图块添加到场景中,然后将场景添加到场景中。然后使用show()函数显示舞台。
// Java Program to create a ChoiceBox and add items to it. import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.collections.*; import javafx.stage.Stage; public class Choice_1 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating ChoiceBox"); // create a button Button b = new Button("show"); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("This is a choice box"); // string array String st[] = { "Arnab", "Andrew", "Ankit", "None" }; // create a choiceBox ChoiceBox c = new ChoiceBox(FXCollections.observableArrayList(st)); // add ChoiceBox r.getChildren().add(l); r.getChildren().add(c); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
- 程序创建一个ChoiceBox并向其添加侦听器:此程序创建一个名为c的ChoiceBox,并使用(ChoiceBox(FXCollections.observableArrayList(string_array)))向其中添加一个字符串列表。我们将添加一个更改侦听器,以检测用户何时选择了所选项(我们将使用addListener()函数添加侦听器)。更改侦听器具有一个函数(已更改公共无效(ObservableValue ov,Number值,Number new_value)),当更改选择项时会调用该函数。我们将选择内容和标签添加到图块窗格(getChildren().add()函数)。然后,我们将创建一个舞台(容器),并将图块添加到场景中,然后将场景添加到场景中。最后,使用show()函数显示舞台。
// Java Program to create a ChoiceBox and add listener to it. import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.collections.*; import javafx.beans.value.*; import javafx.stage.Stage; public class Choice_2 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating ChoiceBox"); // create a button Button b = new Button("show"); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("This is a choice box"); Label l1 = new Label("nothing selected"); // string array String st[] = { "Arnab", "Andrew", "Ankit", "None" }; // create a choiceBox ChoiceBox c = new ChoiceBox(FXCollections.observableArrayList(st)); // add a listener c.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { // if the item of the list is changed public void changed(ObservableValue ov, Number value, Number new_value) { // set the text for the label to the selected item l1.setText(st[new_value.intValue()] + " selected"); } }); // add ChoiceBox r.getChildren().add(l); r.getChildren().add(c); r.getChildren().add(l1); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输出:
注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。
参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ChoiceBox.html
相关用法
- JavaFX 类 CustomMenuItem用法及代码示例
- JavaFX 类 Tab用法及代码示例
- JavaFX 类 TextInputDialog用法及代码示例
- JavaFX 类 ChoiceDialog用法及代码示例
- JavaFX 类 MenuButton用法及代码示例
- JavaFX 类 ProgressIndicator用法及代码示例
- JavaFX 类 ProgressBar用法及代码示例
- JavaFX 类 PasswordField用法及代码示例
- JavaFX 类 TextField用法及代码示例
- JavaFX 类 Pos用法及代码示例
- JavaFX 类 Box用法及代码示例
- JavaFX 类 Arc用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | ChoiceBox。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。