【问题标题】:Showing Stage/Dialog more than once in javafx application that is launched by Platform.startup() [duplicate]在 Platform.startup() 启动的 javafx 应用程序中多次显示 Stage/Dialog [重复]
【发布时间】:2018-12-13 11:26:14
【问题描述】:

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

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

当用户双击系统托盘图标时,我调用Platform.runLater() 并将新对话框的创建和显示传递给它。但是,当用户关闭第一个对话框并尝试再次打开它时,它会默默地打开失败。

在调查 openJFX 11.0.1 源代码后,发现一旦关闭最后一个 JavaFX 窗口,JavaFX 运行时就会终止其工具包。

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

【问题讨论】:

    标签: java javafx openjfx


    【解决方案1】:

    你想使用Platform.setImplicitExit(false)

    implicitExit 属性设置为指定值。如果该属性为真,JavaFX 运行时将在最后一个窗口关闭时隐式关闭; JavaFX 启动器将调用Application.stop() 方法并终止JavaFX 应用程序线程。如果该属性为假,应用程序将在最后一个窗口关闭后继续正常运行,直到应用程序调用exit()。默认值为 true。

    【讨论】:

    • 正是我想要的。下次我应该仔细阅读 JavaDoc。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多