运行 JavaFX 应用程序:JFXPanel 与 Application.launch
Running JavaFX Applications: JFXPanel vs Application.launch
我目前正在使用 Apache Felix
做一个大型 JavaFX
应用程序,并且对在启动过程中要做什么有疑问。我做了一些实验,发现了在 OSGi
环境中启动 JavaFX
的 2 种可能方法。
第一种方法 是通过JavaFX bootstrap
使用JFXPanel()
。我不是嵌入 Swing Applications
这是为了初始化 JavaFX Thread
.
public class JavaFXEnvironment {
public static void start(){
return new JFXPanel();
}
}
我会调用 JavaFXEnvironment.start();
然后在 Activator Bundle
.
中使用我的 JavaFX
应用程序的启动方法
Platform.runlater(() -> {
new SampleApplication.start();
});
第二种方法是使用Application.start()
方法。
public class SampleApplication extends Application {
public void start(Stage stage) {
... /* Do JavaFX stuffs in here */
}
}
然后在Activator Bundle
中调用Application.launch(...)
。
使用其中一种方法会产生什么影响?
即使我没有嵌入,使用 JFXPanel 时是否有任何缺点 Swing Applications
?
我建议使用 Application.launch,例如。在声明式服务或激活器中启动它。您将不得不启动一个新线程,因为调用正在阻塞。
使用 JFXPanel 会将 Swing 添加到组合中,可能还会添加 Swing 事件调度线程 (EDT)。
请注意,我已经发布了 Drombler FX 的一些抢先体验版本,这是一种基于 OSGi (Apache Felix) 和 Maven(POM-first)的 JavaFX 新模块化应用程序框架。
您可以在此处阅读有关 Drombler FX 的更多信息:http://puces-blog.blogspot.ch/search/label/Drombler
有一个 Getting Started 页面解释了如何通过几个简单的步骤创建、构建和 运行 Drombler FX 示例应用程序。
我目前正在使用 Apache Felix
做一个大型 JavaFX
应用程序,并且对在启动过程中要做什么有疑问。我做了一些实验,发现了在 OSGi
环境中启动 JavaFX
的 2 种可能方法。
第一种方法 是通过JavaFX bootstrap
使用JFXPanel()
。我不是嵌入 Swing Applications
这是为了初始化 JavaFX Thread
.
public class JavaFXEnvironment {
public static void start(){
return new JFXPanel();
}
}
我会调用 JavaFXEnvironment.start();
然后在 Activator Bundle
.
JavaFX
应用程序的启动方法
Platform.runlater(() -> {
new SampleApplication.start();
});
第二种方法是使用Application.start()
方法。
public class SampleApplication extends Application {
public void start(Stage stage) {
... /* Do JavaFX stuffs in here */
}
}
然后在Activator Bundle
中调用Application.launch(...)
。
使用其中一种方法会产生什么影响?
即使我没有嵌入,使用 JFXPanel 时是否有任何缺点 Swing Applications
?
我建议使用 Application.launch,例如。在声明式服务或激活器中启动它。您将不得不启动一个新线程,因为调用正在阻塞。
使用 JFXPanel 会将 Swing 添加到组合中,可能还会添加 Swing 事件调度线程 (EDT)。
请注意,我已经发布了 Drombler FX 的一些抢先体验版本,这是一种基于 OSGi (Apache Felix) 和 Maven(POM-first)的 JavaFX 新模块化应用程序框架。
您可以在此处阅读有关 Drombler FX 的更多信息:http://puces-blog.blogspot.ch/search/label/Drombler
有一个 Getting Started 页面解释了如何通过几个简单的步骤创建、构建和 运行 Drombler FX 示例应用程序。