JavaFX - 選擇框



選擇框 (ChoiceBox) 是一個預定義選項的下拉列表,允許使用者一次選擇其中一個選項。它始終在框的頂部顯示當前選擇的選項,當用戶點選選擇框時,它會顯示所有其他可用選項的下拉列表。

在 JavaFX 中,選擇框由名為 ChoiceBox 的類表示。此類屬於包 javafx.scene.control。透過例項化此類,我們可以在 JavaFX 中建立一個 ChoiceBox 節點。

此類有兩個建構函式,如下所示:

  • ChoiceBox() - 用於建立沒有標題面板的手風琴。

  • ChoiceBox(ObservableList<t> items) - 它將建立一個具有指定標題面板的手風琴。(此處原文有誤,應為建立帶有指定項的選擇框)

在 JavaFX 中建立選擇框

我們需要按照以下步驟在 JavaFX 中建立 ChoiceBox。

步驟 1:例項化 ChoiceBox 類

在 JavaFX 中,選擇框是透過例項化名為 ChoiceBox 的類建立的,該類屬於包 javafx.scene.control。像下面這樣在 start() 方法內例項化此類:

//Instantiating the ChoiceBox class
ChoiceBox<String> box = new ChoiceBox<String>();

步驟 2:向 ChoiceBox 新增項

我們使用 ObservableList 將項新增到 JavaFX 中的 ChoiceBox。它儲存所有具有指定型別(例如 String)的項。

//Retrieving the observable list
ObservableList<String> oslist = box.getItems();
//Adding items to the list
oslist.addAll("Windows7", "Windows8", "Windows10", "Windows11", "MAC OS"); 

注意 - 有時,我們可能需要為 ChoiceBox 指定其他說明,在這種情況下,我們可以使用 JavaFX 的 Label 或 TextField 類。

步驟 3:啟動應用程式

建立 ChoiceBox 並新增其項後,請按照以下步驟正確啟動應用程式:

  • 首先,透過將 ChoiceBox 物件作為引數值傳遞給其建構函式來例項化名為 Scene 的類。我們還可以將應用程式螢幕的尺寸作為可選引數傳遞給此建構函式。

  • 然後,使用 Stage 類的 setTitle() 方法設定舞臺的標題。

  • 現在,使用名為 Stage 的類的 setScene() 方法將 Scene 物件新增到舞臺。

  • 使用名為 show() 的方法顯示場景的內容。

  • 最後,在 launch() 方法的幫助下啟動應用程式。

示例

以下 JavaFX 程式演示瞭如何在 JavaFX 應用程式中使用 ChoiceBox。將此程式碼儲存在名為 JavafxChoiceBox.java 的檔案中。

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class JavafxChoiceBox extends Application {
   public void start(Stage stage) {
      //Instantiating the ChoiceBox class
      ChoiceBox<String> box = new ChoiceBox<String>();
      //Retrieving the observable list
      ObservableList<String> oslist = box.getItems();
      //Adding items to the list
      oslist.addAll("Windows7", "Windows8", "Windows10", "Windows11", "MAC OS");
      //Setting the position of the choice box
      box.setTranslateX(200);
      box.setTranslateY(15);
      //Setting the label
      Label setlabel = new Label("Select your Operating System:");
      setlabel.setTranslateX(20);
      setlabel.setTranslateY(20);
      //Adding the choice box to the group
      Group newgrp = new Group(box, setlabel);
      //Setting the stage
      Scene scene = new Scene(newgrp, 500, 200);
      stage.setTitle("Choice Box in JavaFX");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

要從命令提示符編譯和執行儲存的 Java 檔案,請使用以下命令:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox

輸出

當我們執行上述程式碼時,它將生成以下輸出。

ChoiceBox Output

使用其引數化建構函式建立選擇框

前面,我們使用了 ChoiceBox 類的空建構函式來建立一個選擇框。但是,還有另一種方法可以實現相同的功能。我們可以透過使用 observableArrayList 傳遞列表項作為引數來使用引數化建構函式。

示例

以下是將使用 ChoiceBox 類引數化建構函式建立選擇框的 JavaFX 程式。將此程式碼儲存在名為 JavafxChoiceBox.java 的檔案中。

import javafx.application.Application;
import javafx.collections.*;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class JavafxChoiceBox extends Application {
   public void start(Stage stage) {
      //Creating a ChoiceBox
      ChoiceBox<String> box = new ChoiceBox<String> (
         FXCollections.observableArrayList(
	     "Windows7", "Windows8", "Windows10", "Windows11", "MAC OS"));
      //Setting the position of the choice box
      box.setTranslateX(200);
      box.setTranslateY(15);
      //Setting the label
      Label setlabel = new Label("Select your Operating System:");
      setlabel.setTranslateX(20);
      setlabel.setTranslateY(20);
      //Adding the choice box to the group
      Group newgrp = new Group(box, setlabel);
      //Setting the stage
      Scene scene = new Scene(newgrp, 500, 200);
      stage.setTitle("Choice Box in JavaFX");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}  

使用以下命令從命令提示符編譯和執行儲存的 Java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox

輸出

執行後,上述程式將生成一個 JavaFX 視窗,顯示以下輸出。

ChoiceBox Output2
廣告
© . All rights reserved.