如果你现在或不久的将来开始你的新项目,你会选择哪个图形用户界面框架/库?
它必须是免费的商业用途和跨平台。
我一直是一个快乐的swing用户,但Sun似乎正在推动swing弃用,同时推动Javafx,它还没有准备好进入黄金时间。
还有SWT,但它似乎在Linux上有问题。
你选择的Gui库/框架是什么?
编辑: Sun已经取消了swingx项目。从论坛上的评论来看,以前从事核心swing工作的大多数http://swingx.dev.java.net资源现在都在全职开发JavaFx。
发布于 2008-11-11 16:58:42
我认为尽管Sun管理不善,Swing仍然是一个很好的框架。你可以用它做很多事情,特别是当“很多”涉及自定义渲染的UI控件时。如果你的应用程序需要一个品牌的LAF,或者仅仅需要一些复杂的自定义控件,Swing就是你想要的。
另一方面,我确实非常喜欢SWT。它的名声很差,因为每个人过去都认为这是IBM接管Java的策略,但实际上它只是另一个与Swing相辅相成的UI框架。我不建议将SWT用于超复杂的图形渲染(特别是合成)或创建非常重要的自定义控件,但对于其他任何事情,它都是非常好用的。API本身受到了很多批评,因为它依赖于位掩码和用户管理的事件分派循环,但是一旦你习惯了它们,这些东西中的大多数都是相当透明的。组件本身比Swing简单得多(在可扩展性和类似方面),这意味着API可以按比例更简单。我实际上还记得如何在SWT中创建和填充表;然而,如果没有Google的帮助,我想我从来没有在Swing中处理过这个问题。
SWT目前最大的问题是稳定版本依赖于Mac上的Carbon,这意味着SWT应用程序只能在Java5上运行32位(或在SoyLatte上运行32位)。至于其他平台,SWT在Windows (Vista和XP)上表现出色,在GTK Linux上几乎同样出色。我(最近)在Linux上没有遇到过SWT的任何问题,所以你提到它是一个痛处,这让我有点惊讶。
回到您的问题:这完全取决于您的应用程序需要什么。如果它是一个华丽的自定义样式的应用程序,有大量的自定义控件和复杂的合成,那么Swing是唯一的选择。但是,如果更简单的API对您来说更重要,或者如果您的用户需要终极的平台LAF保真度,SWT是最好的选择。
发布于 2008-11-11 16:37:09
现在,我正在使用SWT或Qt (Jambi)。
Swing在过去的10年里没有发展,bug没有修复,开发已经停止,转而支持JavaFX,所以你也不会看到任何新功能。JavaFX看起来可能很棒,但它仍然是蒸气软件,它是由那些让Swing饿死的人制造的,所以我不会在它上面下任何赌注。
在SWT和Qt之间,我更喜欢使用Qt,因为它是一个非常成熟和强大的框架,由知道自己在做什么的人(好吧,至少大多数时候是:)和SWT (如果新项目的许可证与Qt不兼容)。
发布于 2008-11-11 16:16:48
我仍然使用Swing,并且将继续这样做,直到它不再被支持为止。感谢您对Javafx的建议,我现在必须研究一下这一点。
https://stackoverflow.com/questions/281342
复制相似问题