JavaFX完全取代了Swing吗?

时间:2013-03-12 13:37:32

标签: java swing javafx-2

我有一个Java桌面应用程序,其中图形用户界面已经设计了。在我们知道JavaFX replacing Swing之后我们用JavaFX替换了图形用户界面。

  

“6。JavaFX是否将Swing替换为Java的新客户端UI库   SE?是。但是,Swing仍将是Java SE规范的一部分   在可预见的未来,并包含在JRE中。一方面,   Swing广泛用于现有的Java桌面应用程序,但依赖   在旧建筑上,这需要一定的专业水平   和专业化。另一方面,JavaFX具有一套现代的功能   可以使用标准CSS技术进行蒙皮的UI控件。而   我们建议开发人员尽可能地利用JavaFX API   在构建新应用程序时,可以使用Swing和JavaFX   在同一个应用程序中,允许开发人员扩展现有的   Swing应用程序。“

现在我们听说Oracle将JavaFX工具包捐赠给开源社区,OpenJDK社区同意接受它。

  

JavaFX工具包是从Sun的F3项目演变而来的。初始   然而,发行版基于JavaFX脚本语言   2011年该工具包完全用Java重写并发布   Oracle作为JavaFX 2.0。 2011年10月甲骨文宣布它会   在11月之前将JavaFX工具包捐赠给开源社区   2011年,OpenJDK社区同意接受它。

我不认为JavaFX是稳定的。它没有快速支持。文件说明不够。当舞台关闭时,它不会释放内部存储器。我的应用程序是多线程应用程序,我的应用程序大部分时间都在更新每个单独线程的状态。本机包中的自包含JRE副本不可靠,我们必须将其替换为驻留在JDK中的JRE文件夹。

这真的令人沮丧,我想知道,如果JavaFX适合开发Java Desktop应用程序。

3 个答案:

答案 0 :(得分:14)

根据Oracle的说法,JavaFX 是Swing的替代品:

问题6的

http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6说:

JavaFX是否将Swing替换为Java SE的新客户端UI库?

即可。但是,在可预见的未来,Swing仍将是Java SE规范的一部分,因此包含在JRE中。虽然我们建议开发人员在构建新应用程序时尽可能多地利用JavaFX API,但可以使用JavaFX扩展Swing应用程序,从而实现更平滑的过渡。

答案 1 :(得分:9)

Is JavaFX complete replacement of Swing?

我认为不是,

  • 与Swing相比,大多数组件都是半成品(开发价格???),

  • JavaFX8中的实现(可通过Java8访问)有一个重点可以从JavaFX容器访问Swing JComponents,并且可以在Swing JContainers中访问JavaFX组件(在较新的JavaFX2.2中实现),

  • 然后可以访问JavaFX以开发DeskTop应用程序

  • 还有一个问题是,是否可以将JavaFX TextArea与Swing JTextArea一起添加到一个JPanel中,反之亦然(Panel from xxx.scene.xxx)

  • FX Experience上的更多(最好的信息,路线图,开发......)(有时会注意到: - )

答案 2 :(得分:-1)

自2020年起更新

此问题最初发布后的随后几年中,JavaFX技术似乎发展得很好。 Java已经按照其为期6个月的培训计划发布了,JavaFX的发布也赶在每次发布后不久就可以匹配。

Oracle已完成使JavaFX开源(称为OpenJFX)的过程。现在,代码库作为sub-project on the OpenJDK项目存在。领导权已分配给Gluon公司。

受欢迎程度和社区似乎正在增长。竞争对手已经破产,例如 Microsoft Silverlight Adob​​e Flash 都死了。

Oracle继续支持Swing,但仅在maintenance-mode中提供。相反,JavaFX仍在不断增长和改进。

Oracle和其他供应商(例如Azul Systems)一样,都销售对JavaFX的支持。

一些提供Java实现的供应商将JavaFX / OpenJFX库与JVM捆绑在一起。其中包括带有 ZuluFX 产品的Azul Systems和带有 LibericaFX 产品的BellSoft。

尽管目前是最先进的,但仍在使用ahead-of-time compilationGraalVM使用OpenJFX为iOS和其他平台构建本机应用程序的工作。

请参阅:


enter image description here