【问题标题】:Why is Swing supported in newer JavaSE versions, but not JavaFX? [closed]为什么较新的 JavaSE 版本支持 Swing,但 JavaFX 不支持? [关闭]
【发布时间】:2020-07-30 01:43:57
【问题描述】:

从我的角度来看,JavaFX 比 Swing 更现代且更易于使用。

我看了一个Oracle employee写的关于future of JavaFX的文档,偶然发现一句话:

Oracle 重申 Swing 和 AWT 仍然是 Java SE 的核心 跨所有 Java SE 版本和支持的 Oracle 技术 时间表。

为什么较新的 JavaSE 版本支持 Swing,但 JavaFX 不支持?

【问题讨论】:

    标签: java oracle swing javafx


    【解决方案1】:

    这是一个商业问题。

    一个答案是,他们希望能够将 JavaFX 发布周期与主要 Java SE 发布周期分开。尽管事实证明 JavaFX 遵循新的 Java SE 发布节奏。

    第二个答案是,将它们分开可能会使项目治理更简单。

    但为什么是 JavaFX 而不是 Swing?

    再次,商业原因:

    • JavaFX 被认为比 Swing 更“利基”。因此,将其分开被认为更容易接受。

    • Swing(和 AWT)是旧项目中广泛使用的技术。过去,我指的是已经存在 20 多年的“成熟”/“遗留”项目。分离 Swing 更有可能破坏更多旧项​​目。

      “破坏”旧客户代码或实践的重大更改不利于 Oracle 的业务模式。它们惹恼了支付大量 Java 许可费用的企业客户,他们可能正在考虑“战略性地”切换到其他语言。

    • Swing(和 AWT)尚未在积极开发中,因此它们通常不会像 JavaFX 那样对主要的 Java SE 计划造成拖累。


    无论如何,这一切都没有实际意义。拆分 JavaFX 而不是 Swing 的决定是多年前做出的。它发生了。忍受它。

    【讨论】:

    • 如果 Swing(和 AWT)没有积极开发,JavaFX 从 Java 中分离出来,那怎么可能开发未来的桌面应用程序,我的意思是,没有人会用 Swing 和 AWT 开发桌面应用程序,因为它没有进一步开发。 Oracle 是否正在开发一项新技术,以支持桌面应用程序的开发?甲骨文采取的行动仍然让我非常恼火。
    • 烦恼是一种感觉。
    • 如何使用 Java 开发桌面应用程序?
    • 我不使用 Java 开发桌面应用程序。但我看不出使用 JavaFX 有什么问题。只需将其用作 3rd-party 库即可。或者使用 jlink 和/或 jpackage 来构建可执行文件,等等。
    • @ayvygx 如果您使用构建工具(即 Maven 或 Gradle),在项目中包含 JavaFX 非常简单;特别是如果您使用提供的插件。唯一的困难来自部署应用程序,因为 JavaFX 是特定于平台的(尽管在使用 jlink / jpackage 时这并不重要,因为它们都创建了特定于平台的自包含应用程序)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2016-11-11
    • 2021-01-03
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多