【问题标题】:Why was JavaFX built up from scratch?为什么 JavaFX 是从零开始构建的?
【发布时间】:2016-04-07 05:27:12
【问题描述】:

乍一看,这听起来像是一个无用的问题,但我需要给我的同事一些关于 JavaFX 历史的有效论据。我知道 FXML 并且 Swing 未来不会有任何新功能,这已经在 IT 世界中说明了这一点。

但除此之外......为什么他们从头开始而不是让 Swing 适应新的要求?

JavaFX 更简单,而且它支持 XML 布局,但在我看来,这听起来不像是构建一个全新的框架的必要条件。

我阅读了THIS 博客和有关该主题的其他一些资料,但我无法真正回答这个问题。据我所知,我阅读的观点大多是未成年人。

【问题讨论】:

  • 垃圾桶是重要的设计工具。—loc. cit.
  • 不确定这是否是问题的答案,但 JavaFX 在可能的情况下使用与平台图形硬件更紧密的集成。我想调整 Swing/AWT 来做到这一点会非常困难。请参阅documentation on the architecture。还有许多 API 设计特性,例如可观察属性,Swing/AWT 很难适应这些特性。
  • Swing(或其前身 API)最初是为组件驱动的 UI 开发(按钮、字段等)而构建的,具有非常灵活和可定制的图形层的额外好处,然后与 NetScape 合作推出,这需要 Java 能够访问本机小部件,所以我们得到了 AWT,然后 Swing 被重新设计以与这个 API 一起工作,所以他们确实不得不重新设计轮子。 JavaFX 被设计为 Flash 的竞争对手,因此它有截然不同的目标,但如果 Flash 在 HTML 5 手中消亡,那么该目标很快就会变得无关紧要
  • 所以,简而言之,他们有不同的设计目标。在开发 Swing 时,我们并没有真正的 DirectX 或 OpenGL 管道,它们在今天几乎是标准的(并且 AWT/Swing 已经适应了在较低级别上使用),所以事情可以完成的方式有所进步.

标签: java swing javafx javafx-8 fxml


【解决方案1】:

简而言之,Swing 是一个 15 年以上的架构,它不能与 JavaFX 之类的东西一起使用。管道和架构不存在。如果他们试图在 Swing 之上叠加 FX,他们要么会破坏 Swing,要么会阻碍 FX,或者两者兼而有之。

对于 GUI 框架需要做什么才能获得更好的性能,以及现代开发人员对 GUI 框架的期望,我们现在比过去了解得更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多