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

标签 javafx combobox fxml

我正在尝试使用 FXML 和 JavaFX Controller 创建一个下拉菜单(使用 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>

当选择组合框选项时,如何使用 Action 监听器显示新场景?

提前致谢!

最佳答案

关于如何做到这一点,您可以想到两种方法。

第一个是添加 onAction="#yourMethod"给您<ComboBox ... >标签。然后您可以向 Controller 添加一些代码...

@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 来实现。

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

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

关于javafx - 选择组合框项目时执行操作 FXML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35360306/

相关文章:

java - 运行 java 文件时打开 FXML 窗口

java - 即使使用 X 按钮取消或关闭打印对话框,文档仍在打印?

JavaFX类 Controller 场景引用

google-analytics - 基于 JavaFX 小程序的网站的广告

winapi - 如何将可编辑的 ComboBox 添加到 Vista 的 Common Item Dialog?

java - 使用 JavaFX 缩放窗口时自动将程序内容居中

java - 为什么在 javafx 的 listview.cellFacoty 方法中调用 super.updateItem(item, empty)?

java - 在 Java 中创建多列组合框

java - 当另一个组合框的值更改时,如何更改组合框的项目?

java - 将参数传递给嵌套 Controller