JavaFX完全取代了Swing吗?

2022-09-02 03:49:07

我有一个Java桌面应用程序,其中图形用户界面是逐步设计的。在我们了解到我们已经用JavaFX取代了图形用户界面之后。JavaFX replacing Swing

“6. JavaFX 是否取代 Swing 成为 Java SE 的新客户端 UI 库?是的。但是,在可预见的未来,Swing仍将是Java SE规范的一部分,并包含在JRE中。一方面,Swing在现有的Java桌面应用程序中被广泛使用,但依赖于旧的架构,这需要一定程度的专业知识和专业化。另一方面,JavaFX具有一组现代UI控件,可以使用标准CSS技术进行外观设计。虽然我们建议开发人员在构建新应用程序时尽可能多地利用JavaFX API,但可以在同一应用程序中使用Swing和JavaFX,从而允许开发人员扩展现有的Swing应用程序。

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

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

我不认为JavaFX是稳定的。它没有快速支持。文件不足以解释。当载物台关闭时,它不会释放内部存储器。我的应用程序是多线程应用程序,我的应用程序在更新每个线程的状态时花费了大部分时间。原生捆绑包中 JRE 的独立副本不可靠,我们必须将其替换为驻留在 JDK 中的 JRE 文件夹。

这真的很令人沮丧,我想知道JavaFX是否适合开发Java桌面应用程序。


答案 1

根据Oracle的说法,JavaFXSwing的替代品:

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

JavaFX是否取代Swing成为Java SE的新客户端UI库?

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


答案 2
Is JavaFX complete replacement of Swing?

我认为不是,

  • 与Swing相比,大多数组件的尺寸只有一半(开发价格???),

  • JavaFX8 中的实现(可与 Java8 一起访问)有一个重要点 Swing JComponents 可以从 JavaFX 容器访问,而 JavaFX Components 可以在 Swing JContainers 中访问(在较新的 JavaFX2.2 中实现),

  • 那么JavaFX将可用于桌面应用程序的开发

  • 仍然的问题是,是否有可能将JavaFX TextArea与Swing JTextArea一起添加到一个JPanel中,反之亦然(来自 xxx.scene.xxx 的面板)

  • 更多(最好的信息,路线图,开发...)在FX体验上(注意偶尔是下降的:-)


推荐