从 JavaFX 中的选择框中获取所选项目

Sheeraz Gul 2023年10月12日
从 JavaFX 中的选择框中获取所选项目

ChoiceBoxJavaFX 库的一部分,我们可以从中获得选定的选项。本教程演示了如何从 JavaFX 中的 ChoiceBox 中获取选定项目。

从 JavaFX 中的 ChoiceBox 中获取所选项目

ChoiceBox 包含一组项目,用户可以从中选择将成为当前选定项目的选项。选择框中的默认选择是条目。

以下方法用于使用 ChoiceBox

方法 说明
hide() 此方法将关闭选项列表。
setItems(ObservableList value) 这将设置属性项的值。
setValue(T value) 这将设置属性值的值。
getItems() 这将获得属性项的值。
getValue() 这将获取属性值的值。
show() 这将打开选项列表。

我们使用以下方法从选择框中获取选定的项目。

ChoiceBox.getSelectionModel().selectedIndexProperty()

让我们使用 JavaFX 从 ChoiceBox 中获取选定项目。

package delftstack;

import javafx.application.Application;
import javafx.beans.value.*;
import javafx.collections.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class Choice_Box extends Application {
  public void start(Stage Choice_Box_Stage) {
    // title for the stage
    Choice_Box_Stage.setTitle("ChoiceBox");

    // button to show
    Button Show_Button = new Button("Show Choice");

    // tile pane
    TilePane Title_Pane = new TilePane();

    // labels
    Label Label1 = new Label("This is a choice box, Please select your choice");
    Label Label2 = new Label("No Choice selected");

    // Choices array
    String Choice_Array[] = {
        "Delftstack 1", "Delftstack 2", "Delftstack 3", "Delftstack 4", "Delftstack 5"};

    // choiceBox
    ChoiceBox DemoChoiceBox = new ChoiceBox(FXCollections.observableArrayList(Choice_Array));

    // adding a listener
    DemoChoiceBox.getSelectionModel().selectedIndexProperty().addListener(
        new ChangeListener<Number>() {
          // if items of the list are changed
          public void changed(ObservableValue ov, Number value, Number new_value) {
            // text for the label to the selected item
            Label2.setText(Choice_Array[new_value.intValue()] + " is Selected");
          }
        });

    // ChoiceBox
    Title_Pane.getChildren().add(Label1);
    Title_Pane.getChildren().add(DemoChoiceBox);
    Title_Pane.getChildren().add(Label2);

    Scene sc = new Scene(Title_Pane, 400, 200);

    // Setting the scene
    Choice_Box_Stage.setScene(sc);

    Choice_Box_Stage.show();
  }

  public static void main(String args[]) {
    // launching the application
    launch(args);
  }
}

上面的代码演示了使用 JavaFX 从 ChoiceBox 中获取选择项。见输出:

从选择框中获取选定的项目

作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - Java JavaFX