调用Platform.exit()后尝试打开JavaFX阶段

use*_*583 2 java javafx

在调用Platform.exit()之后,我无法再次创建新阶段或启动应用程序;

我正在调用Platform.exit()来返回我启动JavaFX应用程序的代码

java.lang.IllegalStateException: Not on FX application thread; currentThread = main
    at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:237)
    at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:400)
    at javafx.stage.Stage.<init>(Stage.java:212)
    at javafx.stage.Stage.<init>(Stage.java:198)
    at com.m.Main.replaceSceneContent(Main.java:187)
    at com.m.Main.GotoMessage(Main.java:253)
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个要点,我在调用Platform.exit()之后会发生什么?我们不能重新启动应用程序吗?

Puc*_*uce 6

正如Javadoc所说,Platform.exit()终止了JavaFX应用程序线程.

http://docs.oracle.com/javase/8/javafx/api/javafx/application/Platform.html#exit--

最好不要调用Platform.exit()直到你真的要关闭JavaFX.关闭JavaFX后,您必须使用Application.launch()方法重新启动它.我想,更好的是关闭窗户.

请注意,Platform.setImplicitExit(false);即使所有窗口都关闭,您也可以阻止JavaFX关闭.