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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。