0
我想编写一个简单的应用程序,当你点击关闭 - 新窗口(舞台)向上推,问你是否真的需要它。我知道它是如何编程实现的,但不知道如何使用fxml
和controllers
来实现。在JavaFx中的阶段之间进行通信(使用* .fxml)
如果主要应用阶段和确认阶段将使用分开的controllers
和每个controller
将映射为一个fxml
文件只能如何返回从确认到主阶段的结果值?
我想编写一个简单的应用程序,当你点击关闭 - 新窗口(舞台)向上推,问你是否真的需要它。我知道它是如何编程实现的,但不知道如何使用fxml
和controllers
来实现。在JavaFx中的阶段之间进行通信(使用* .fxml)
如果主要应用阶段和确认阶段将使用分开的controllers
和每个controller
将映射为一个fxml
文件只能如何返回从确认到主阶段的结果值?
我想你可能需要简单的Dialog或Alert。如果您不喜欢默认的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处理中,并且如果他决定使用该事件(点击取消)就可以使用该事件。