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

时间:2016-02-12 10:31:43

标签: 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 fx:factory="observableArrayList">
            <String fx:value="Menu" />
            <String fx:value="Settings" />
            <String fx:value="Exit" />
        </FXCollections>
    </items>
</ComboBox>

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

提前致谢!

1 个答案:

答案 0 :(得分:4)

有两种方法可以让你想到如何做到这一点。

第一种方法是将onAction="#yourMethod"添加到您的<ComboBox ... >代码中。然后,您可以向控制器添加一些代码......

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

...将在用户选择项目时运行。

您可以做的另一件事是向您的ComboBox添加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中进行优先考虑。

我希望这对你的项目很有帮助,祝你好运!

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