选择组合框项时执行操作 FXML

Execute action when combobox item is selected FXML

我正在尝试使用 FXML 和 JavaFX 控制器创建下拉菜单(使用 ComboBox)。

这是我已有的:

<ComboBox fx:id="menuSettings" layoutX="14.0" layoutY="27.0" prefHeight="27.0" prefWidth="27.0" style="-fx-background-color: white;">               
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="Menu" />
            <String fx:value="Settings" />
            <String fx:value="Exit" />
        </FXCollections>
    </items>
</ComboBox>

如何在选择 ComboBox 选项时使用 Action 侦听器显示新场景?

提前致谢!

关于如何执行此操作,您会想到两种方法。

首先是将 onAction="#yourMethod" 添加到您的 <ComboBox ... > 标签。然后您可以向您的控制器添加一些代码...

@FXML public void yourMethod() {
    //Show the scene here
}

...当用户选择一个项目时会是 运行。

您可以做的另一件事是将 ChangeListener 添加到您的组合框:

@FXML public void initialize() {
    yourComboBox.valueProperty().addListener(new ChangeListener<String>() {
            @Override public void changed(ObservableValue value, String old, String new) {
                //Show your scene here
            }    
        });
}

我认为这两种方法都可行,只是用代码或 FXML 来实现的偏好问题。

希望对您有所帮助,祝您的项目顺利!

(如果这没有回答您的问题,请告诉我,我会尽力修改我的答案)