【问题标题】:Is Java Swing still in use? [closed]Java Swing 还在使用吗? [关闭]
【发布时间】:2011-02-28 23:22:38
【问题描述】:

我正计划制作一个 Java Swing 应用程序,并且想知道 Swing 是否仍在使用,或者是否已被其他东西取代。

提前致谢!

【问题讨论】:

标签: java user-interface swing awt


【解决方案1】:

您仍然可以使用 Java Swing,但我建议使用 JavaFX。设计 UI 更容易,因为 SceneBuilder 可以帮助您做到这一点。它也是更新的,所以支持和开发的时间更长。 Swing 的优势在于它已经推出了很长时间,因此您会找到更多关于 Swing 的教程和帮助,但 JavaFX 正在迎头赶上。如果您想学习 JavaFX,我建议您在 YouTube 上关注 thenewboston 的 tutorial series

【讨论】:

    【解决方案2】:

    是的。 StackOverflow 上的 1 out of 120 questions 大约是 Swing。

    【讨论】:

    • 糟糕的 JavaFX。应该让更多人使用它。
    • 也许 JavaFX 是如此易于使用以至于没有人对此有任何疑问? ;)
    【解决方案3】:

    Swing 仍在使用中......但有 AWT!

    AWT:

    优点:

    • 速度:使用本地对等点可提高组件性能。
    • 外观和感觉:AWT 组件更紧密地反映了它们运行的​​操作系统的外观和感觉。

    缺点:

    • 可移植性:使用本地对等体会产生特定于平台的限制。某些组件在某些平台上可能根本无法运行。
    • 第三方开发:大多数组件制造商,包括 Borland 和 Sun,都基于 Swing 组件开发新组件。可用的 AWT 组件要少得多,因此程序员要承担创建自己的基于 AWT 的组件的负担。
    • 功能:AWT 组件不支持图标和工具提示等功能。




    摆动:

    优点:

    • 可移植性:纯 Java 设计减少了特定于平台的限制。
    • 行为:纯 Java 设计允许 Swing 组件的行为范围更广,因为它们不受 AWT 使用的本地对等体的限制。
    • 功能:Swing 支持更广泛的功能,例如组件的图标和弹出式工具提示。
    • 供应商支持:Swing 开发更加活跃。 Sun 在使 Swing 更强大方面投入了更多精力。
    • 外观和感觉:可插拔外观让您可以设计一组 GUI 组件,这些组件可以自动拥有任何操作系统平台(Microsoft Windows、Solaris、Macintosh 等)的外观。它还可以更轻松地对您的 Java 程序进行全局更改,从而提供更高的可访问性(例如选择高对比度的配色方案或更改所有对话框中的所有字体等)。

    缺点:

    • 性能:Swing 组件通常比 AWT 更慢且错误更多,因为它们是纯 Java 以及各种平台上的视频问题。由于 Swing 组件处理自己的绘画(而不是在 Windows 上使用 DirectX 等原生 API),因此您可能会遇到图形故障。
    • 外观和感觉:即使 Swing 组件设置为使用运行它们的操作系统的外观和感觉,它们看起来也可能不像它们的本地对应物。



    More Reading..

    【讨论】:

    • "Applet 可移植性:大多数 Web 浏览器都支持 AWT 类,因此 AWT 小程序可以在没有 Java 插件的情况下运行。"这显然是错误的。
    • 呃?我猜这是 1990 年代,你还在使用 Netscape 4.0,对吧?
    • 我不推荐 AWT,现在它很少受到喜爱(除了 Swing 所需的位)。如果你想走原生路径,最好使用 SWT。
    • "大多数 Web 浏览器不包含 Swing 类,因此必须使用 Java 插件。" - 什么? Swing 类是 JRE 的一部分,而不是浏览器。我不记得这在 2003 年是个问题。
    • “他们可能看起来不像他们的本土同行”——这让我咯咯笑了起来。至少在 Windows 上,我还没有看到一个单一的控件(可能除了 JLabel 之外),它的外观和感觉就像它与“原生”LAF 的原生对应物:-)
    【解决方案4】:

    对于桌面程序,是的,Swing 被大量使用。但是有很多替代方案,因为很多人认为 Swing 非常冗长且难以使用。 JavaFX 值得一看

    【讨论】:

    • JavaFX 是用于 Web 应用程序的,不是吗?我正在寻找制作原生桌面应用程序。
    • 不,JavaFX 可用于桌面应用程序,我认为您不能将其用于 Web 开发。
    【解决方案5】:

    虽然swing还在使用,但我还是选择Eclipse RCP作为桌面应用的平台,因为它也提供了大量的插件。

    【讨论】:

    • Eclipse RCP 使用 Eclipse 自己的 SWT,这意味着您需要本地 SWT 库。您还可以在基于 Swing 的 NetBeans 平台上构建:platform.netbeans.org
    【解决方案6】:

    是的,它仍在使用中。需要一段时间才能习惯,但一旦你掌握了它,它就会是一个非常好的编写应用程序的框架。查看 Webstart 以部署您的应用程序。开始时也有点笨拙,但当你舒服时真的很方便

    【讨论】:

      【解决方案7】:

      Swing 仍然是构建重量级的首选方式,例如Java 中的“桌面”应用程序。如果您的代码在 Web 浏览器中运行,您可能会使用其他东西。但是对于独立的桌面应用程序来说,它非常出色并且被广泛使用。

      【讨论】:

        【解决方案8】:

        Swing 仍然存在并且得到很好的支持。

        人们在摇摆刚问世时讨厌它的大多数原因不再有效,这仅仅是因为摩尔定律以及改进的 JVM。 Swing 应用程序不会让人感到生涩和反应迟钝,并且微小改进的积累会产生更专业的 GUI。

        它还值得一看用于快速开发和原型设计的“groovy/swing”组合。

        【讨论】:

        • 另一方面,Swing 的文档几乎不存在。
        • 同意文档有些欠缺,但是,IDE 支持非常好,而且,谷歌搜索通常会为您提供一些不错的使用示例。
        • Swing 中有很多不能归因于摩尔定律的调整。
        • swing 文档通常都不错。 javadocs 对于更复杂的方面有一些非常深入的示例。我意识到它们无法与在巨大网页上对每种控件类型进行活动演示的其他系统相提并论,但是对于实施,您需要知道的就在那里。 Groovy/SwingBuilder 很棒,但实际上几乎没有文档,我不得不筛选大量垃圾以找到大量属性列表,或者甚至存在一些构造!
        【解决方案9】:

        是的,它仍在使用中。该库仍然是 JRE 的一部分,并且将来可能会是这样。不过还有其他选择。例如,如果您需要丰富的 UI,您可能想要查看 JavaFX;或在您的应用程序中使用 SWT。也许您想要某种 3D 效果,并且您需要研究像 jpct 或 jmonkeyengine 这样的 3D 引擎。自从软件 Swing 世界以来,Java 有了一些进步。

        【讨论】:

        • jmonkeyengine 仅适用于游戏。
        【解决方案10】:

        我们仍然使用它。并非所有东西都是 web 应用程序,到目前为止,已经有一些尝试性的替代品(例如 SWT,eclipse 是用它编写的)
        SWT 有一个原生层,它封装了对原生窗口层的底层调用。它仅适用于有限的平台集,当然需要一些第三方共享库。我敢说,SWT 应用比 Swing 应用少得多。

        【讨论】:

        • 现代来说(Java8),JavaJX 是一个很好的替代品,值得学习。
        猜你喜欢
        • 2014-08-18
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 2014-08-25
        • 2010-11-21
        相关资源
        最近更新 更多