18

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

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

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

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

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

编辑:Sun 已经取消了 swingx项目。从http://swingx.dev.java.net上的论坛评论看来,以前在核心 swing 上工作的大多数 Sun 资源现在都在全职开发 JavaFx。

4

3 回答 3

8

我认为尽管 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 是最佳选择。

于 2008-11-11T16:58:42.287 回答
4

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

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

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

于 2008-11-11T16:37:09.040 回答
3

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

于 2008-11-11T16:16:47.877 回答