Java桌面应用程序框架与JavaFX

时间:2016-01-26 17:14:57

标签: java javafx frameworks

有许多Java“应用程序框架”,例如http://pivot.apache.org/demos/中列出的那些,它们几乎都使用Swing作为GUI工具包,或者在Eclipse的情况下使用SWT。

但是我还没有看到任何明显的JavaFX框架。这是为什么?

如果看一下框架调用你的“好莱坞原则”,我会认为JavaFX已经这样做了,但后来我很困惑,因为看起来Swing和JavaFX的作用大致相同,就像GUI一样层。但他们都做事件循环和回调/事件/观察者模式等。

仅仅实现一个事件循环并调用您的事件处理程序不符合“应用程序框架”的条件吗?

如果没有,是否有任何基于JavaFX的框架(而不是在Swing控件中嵌入JavaFX)?这样的框架会为JavaFX独立提供什么?

对于这个问题的“显而易见性”感到抱歉,但这对我来说并不明显。

感谢。

3 个答案:

答案 0 :(得分:5)

有很多看起来像你的研究还不是很彻底

由于我是e(fx)clipse的作者,我有偏见但我知道它用于(大)商业项目

答案 1 :(得分:4)

在我看来,Swing,JavaFX和SWT都是图形工具包,提供了一组基本的小部件。没有"应用程序"框架因为他们的主要目标是显示用户界面。但是,通过使用基本功能,您可以使用它们来构建没有任何其他库的应用程序。

可在此处找到一个好的示例应用程序:https://github.com/angelicalleite/museuid

从mysql数据库中挑选数据看起来非常不错,但如果仔细阅读源代码,您会注意到所有SQL查询都是在UI线程中执行的,这会降低UI响应速度。

这是您应该使用应用程序框架的原因之一。 他们的目标各不相同,而且数量众多,但他们都致力于通过在应用程序代码中保留复杂的东西(如多线程,消息传递)来简化应用程序的开发。

您的选择应根据您对要使用的架构和依赖关系的个人信念(或不要)进行。

我是JRebirth(免责声明)的作者,但我有时会看看其他框架,所以你可以通过问自己一些基本问题做出选择:

您想要/需要OSGI支持吗?

=>是的efxclipse,DromblerFX,DEMUX

=>没有JRebirth,JacpFX,DataFX,griffonFX,afterburner.fx

你想要一个简约的框架吗?

=>是的afterburner.fx

您想要/需要事件消息吗?

您想分享代码吗?

你想要模块化吗?

您需要Java 7支持吗?

您希望如何管理应用程序线程。

我当然忘记了很多问题。

事实上,您应该使用这些应用程序框架中的一个(构建您自己的将非常耗时),它将彻底加速您的开发并保护它们,其余的问题是:

  • 什么AF适合您的需求?
  • 您和您的团队可以使用哪种AF?

使用您不喜欢的模式选择自动对焦可能很痛苦,无论如何,您可以为任何可用的自动对焦做出贡献,因为它们都是开源的。

希望它有所帮助,

答案 2 :(得分:1)

对此的简单回答是:JavaFX比Swing年轻得多 - 至少作为标准的JDK库。事实上,它只是Java 8的“真正”标准部分。如果你检查history,你会看到以下事实:

  • 在JavaFX 2(2011年发布)之前,开发人员需要学习脚本语言。
  • 同样在JavaFX 2之前,该实现旨在独立于平台,因此不使用可能对图形和动画产生重大影响的系统特定资源。

通读它,你会发现一些更有趣的细节可以归结为可能大多数开发人员在过去5年左右才“认真地”注意到JavaFX。 Swing可以追溯到更远的位置(特别是在标准的Java运行时环境中),因此自然会有更多针对Swing的库而不是FX。