相关疑难解决方法(0)

JavaFX:阶段关闭处理程序

我想在关闭JavaFX应用程序之前保存文件.

这就是我在以下方式设置处理程序的方式Main::start:

primaryStage.setOnCloseRequest(event -> {
    System.out.println("Stage is closing");
    // Save file
});
Run Code Online (Sandbox Code Playgroud)

Stage::close当按下按钮时控制器调用:

@FXML
public void exitApplication(ActionEvent event) {
    ((Stage)rootPane.getScene().getWindow()).close();
}
Run Code Online (Sandbox Code Playgroud)

如果我关闭窗口,单击窗口边框上的红色X(正常方式),然后我得到输出消息" Stage is closing",这是所需的行为.

但是,在调用Controller::exitApplication应用程序时关闭而不调用处理程序(没有输出).

如何让控制器使用我添加的处理程序primaryStage

java javafx handler javafx-8

45
推荐指数
2
解决办法
7万
查看次数

如何使我的程序等到JavaFX窗口关闭后再继续?

我有一个显示结果图表的程序。我想等到用户关闭条形图以继续到下一行代码,询问他们是否要为图表输入新信息。

Scene scene = BarGraph.getBarChart();
primaryStage.setScene(scene);
primaryStage.setTitle("Bar Chart");
primaryStage.show();

repeat = JOptionPane.showConfirmDialog(null, "Would you like to enter another number?");
Run Code Online (Sandbox Code Playgroud)

发生的情况是条形图的场景将打开,但是将不显示任何内容,并立即弹出JOptionPane问题。如果我单击否,则显示图表,但程序结束。如果我单击是,该程序将循环返回到较早的对话框窗口,但是直到另一个对话框结束时才显示图表。

我想等待提示用户,直到他们关闭条形图。在这一点上,我感到非常沮丧,以至于我什至都设置了诸如wait(5000)之类的人为的暂停,尽管我也无法使其正常工作。

我已经读了很多,还没有找到实际可行的解决方案。最接近的问题是:JavaFX等到阶段关闭

据我了解,我实际上不能使程序等待,但是可以将操作设置为在关闭窗口后执行。但是按照建议进行操作只会使平台打开,然后立即关闭。我去过其他几个兔子洞,但无济于事。

java user-input javafx joptionpane

1
推荐指数
1
解决办法
6608
查看次数

标签 统计

java ×2

javafx ×2

handler ×1

javafx-8 ×1

joptionpane ×1

user-input ×1