gpt4 book ai didi

java - JavaFx 中各阶段之间的通信(使用 *.fxml)

转载 作者:行者123 更新时间:2023-12-01 11:11:34 24 4
gpt4 key购买 nike

我想编写一个简单的应用程序,当您单击关闭时 - 新窗口(阶段)会向上推并询问您是否真的想要它。我知道它如何以编程方式实现,但不知道它如何使用 fxmlcontrollers 实现。

如果主应用程序阶段和确认阶段将使用单独的 Controller ,并且每个 Controller 将仅映射到一个fxml文件,那么如何我从确认返回结果值到主阶段?

最佳答案

我想你可能需要简单的DialogAlert 。如果您不喜欢默认 Java 对话框的外观,您可以扩展 DialogPane(或对话框本身),在 FXML 中进行设计,然后将 setDialogPane 添加到您的对话框中。

以下是如何创建、显示和获取简单警报的结果,而不需要任何花哨的外观:

Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK");
}
});

到关闭主舞台的部分。您可以拦截并处理关闭请求。

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
System.out.println("I will not close");
event.consume();
}
});

通过使用该事件,您可以根据需要阻止阶段关闭。

因此,如果您希望用户确认,只需将 Alert 放入 onCloseRequest 处理中,并在用户做出决定时使用该事件(点击取消)。

关于java - JavaFx 中各阶段之间的通信(使用 *.fxml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32294921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com