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

Javafx 选择组合框项时执行操作FXML,javafx,combobox,fxml,Javafx,Combobox,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

我正在尝试使用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>

选择组合框选项后,如何使用动作侦听器显示新场景


提前谢谢

关于如何做到这一点,我想到了两种方法

第一种方法是将
onAction=“#yourMethod”
添加到
标记中。然后,您可以向控制器添加一些代码

@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 public void initialize(){
yourComboBox.valueProperty().addListener(新的ChangeListener()){
@覆盖公共无效已更改(ObservalEvalue值、旧字符串、新字符串){
//在这里展示你的场景
}    
});
}
我认为,这两项工作都需要在代码或FXML中进行

我希望这是有益的,祝你的项目好运

(如果这没有回答您的问题,请让我知道,我将尽最大努力修改我的答案)