fun main(args: Array<String>) {
HelloWorldApp().launch()
}
fun App.launch() {
JFXPanel()
Platform.runLater({
start(Stage())
})
}
这就是我现在所做的。有更好的吗?更简洁的方式?
以这种方式在同一个 kotlin 程序中运行多个不同的 TornadoFX 应用程序是否安全?我在某处读到了一些关于全局变量的内容,所以我想知道是否只允许/推荐 1 个。
JVM 已经知道如何启动 JavaFX 应用程序,并且由于您的 App 类扩展了tornadofx.App
它再次扩展javafx.application.Application
,您只需将 JVM 指向该主类,它就会运行得很好。如果您想显式启动 TornadoFX 应用程序,JavaFX 提供了一个launch
您应该使用的静态方法。
启动 JavaFX 或 TornadoFX 应用程序的典型 main 函数是:
fun main(args: Array<String>) {
Application.launch(HelloWorldApp::class.java, *args)
}
JavaFX 只允许在Application.launch
JVM 的生命周期中调用该函数一次,因此无论如何您不能真正启动多个。但是,TornadoFX 提供了特殊的 OSGi 支持,允许您使用应用程序代理实例在同一 JVM 中实际停止和重新启动其他 TornadoFX 应用程序。
TornadoFX 还通过使用 Scopes 来支持 JPro,它允许多个应用程序实例,但实际上并没有Application.launch
多次调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句