【问题标题】:Which Java GUI framework to choose now? [closed]现在选择哪个 Java GUI 框架? [关闭]
【发布时间】:2010-09-21 20:00:52
【问题描述】:

如果您现在或在不久的将来开始您的新项目,您会选择哪个 GUI 框架/库?

它必须免费用于商业用途和跨平台。

我一直是一个快乐的 Swing 用户,但 Sun 似乎在推动 swing 弃用,同时推动 Javafx,它还没有准备好迎接黄金时段。

还有 SWT,但在 Linux 上似乎有问题。

您选择的 Gui 库/框架是什么?

编辑:Sun 已取消 swingx 项目。从http://swingx.dev.java.net 上的论坛 cmets 看来,以前从事 core swing 工作的大部分 Sun 资源现在都在全职开发 JavaFx。

【问题讨论】:

  • @Marko:为什么你认为 Swing 会被弃用?您如何看待 javafx 的替代品?
  • JavaFX 现在是否还提供非 beta 格式?我不认为 JavaFX 会成为 Swing 的竞争对手。当我第一次看到 JavaFX 时,它们似乎是互补的......
  • SwingX 没有取消,也不是 Swing。 SwingX 是一个在 Swing 之上添加扩展的开源项目。有人说,Sun 目前没有自己的员工专门负责 SwingX。显然,目前正在为 JavaFX 投入大量精力。 JavaFX 桌面使用 Swing。

标签: java user-interface cross-platform gui-toolkit


【解决方案1】:

我认为尽管 Sun 管理不善,但 Swing 仍然是一个出色的框架。你可以用它很多,特别是如果那个“很多”涉及自定义呈现的 UI 控件。如果您的应用程序需要一个品牌的 LAF,或者甚至只是一些复杂的自定义控件,Swing 正是您想要的。

另一方面,我确实非常喜欢 SWT。它得到了一个坏名声,因为每个人都认为这是 IBM 接管 Java 的策略,但它实际上只是另一个与 Swing 互补的 UI 框架。我不建议将 SWT 用于超复杂的图形渲染(特别是:合成)或创建真正重要的自定义控件,但对于其他一切来说,它真的很花哨。由于依赖位掩码和用户管理的事件分派循环,API 本身受到了很多批评,但是一旦你习惯了这些东西,其中大部分都是非常透明的。组件本身比 Swing 的要简单得多(在可扩展性和类似方面),这意味着 API 可以按比例更简单。我实际上可以记住如何在 SWT 中创建和填充表;而我认为我在没有 Google 帮助的情况下曾经在 Swing 中处理过这个问题。

SWT 目前最大的问题是稳定版本依赖于 Mac OS X 上的 Carbon。这意味着 SWT 应用程序只能在 Java 5 上运行 32 位(或在 SoyLatte 上为 32 位)。至于其他平台,SWT 在 Windows(Vista 和 XP)上非常出色,在 GTK Linux 上几乎同样出色。我(最近)在 Linux 上的 SWT 没有任何问题,所以我有点惊讶你会提到它作为一个痛点。

回到您的问题:这完全取决于您的应用程序需要什么。如果它是一个带有大量自定义控件和复杂合成的华丽自定义风格的应用程序,那么 Swing 是城里唯一的游戏。但是,如果更简单的 API 对您来说更重要,或者如果您的用户需要最终的平台 LAF 保真度,那么 SWT 是最佳选择。

【讨论】:

  • 我同意 SWT 是一个非常好的 GUI 框架。还可以在 PocketPC 上运行,这意味着您可以在管理层提出需求时快速创建应用的移动版本!
【解决方案2】:

现在,我正在使用 SWT 或 Qt (Jambi)。

Swing 在过去(例如 10 年)没有发展,错误没有修复,开发已经停止支持 JavaFX,因此您也不会看到任何新功能。 JavaFX 可能看起来很棒,但它仍然是蒸汽软件,它是由让 Swing 饿死的人制作的,所以我不会在上面投入任何资金。

在 SWT 和 Qt 之间,我更喜欢使用 Qt,因为它是一个非常成熟且功能强大的框架,由知道自己在做什么的人(好吧,无论如何大部分时间 :))和 SWT(如果新项目的许可证)与 Qt 不兼容。

【讨论】:

    【解决方案3】:

    我仍然使用 Swing,并且会继续这样做,直到它不再受支持为止。感谢您对 Javafx 的提醒,我现在必须研究一下。

    【讨论】:

    • 是的,它以支持 AWT 的方式得到支持,但在 swing 方面不会有任何新的发展。
    • 啊,但是如果当前版本可以满足您的需求,那么谁在乎没有新的开发呢?如果它没有坏,就不要修理它。
    猜你喜欢
    • 2012-04-17
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    相关资源
    最近更新 更多