在Platform.startup()启动的javafx应用程序中多次显示Stage / Dialog

时间:2018-12-13 11:26:15

标签: java javafx openjfx

我正在构建一个在后台运行的应用程序,通过单击SystemTray上的图标可以访问控制面板(JavaFX对话框)。

JavaFX 9通过调用方法Application,增加了在不扩展Platform.startup()类的情况下启动JavaFX应用程序的功能。

当用户双击系统任务栏图标时,我叫Platform.runLater()并将其创建并显示一个新对话框传递给它。但是,当用户关闭第一个对话框并尝试再次打开它时,它无提示打开失败。

研究了openJFX 11.0.1源代码后,事实证明,一旦关闭了最后一个JavaFX窗口,JavaFX运行时就会终止其工具包。

我尝试隐藏对话框而不是关闭对话框,但这也无济于事。有什么解决方法吗?

1 个答案:

答案 0 :(得分:3)

您要使用Platform.setImplicitExit(false)

  

implicitExit属性设置为指定值。如果此属性为true,则在关闭最后一个窗口时,JavaFX运行时将隐式关闭;否则,将关闭JavaFX运行时。 JavaFX启动器将调用Application.stop()方法并终止JavaFX应用程序线程。如果此属性为false,则即使关闭了最后一个窗口,应用程序也将继续正常运行,直到应用程序调用{​​{1}}。默认值为true。