我不相信还有人喜欢AWT。11年前,Swing完全替代了它,并在其基础上纠正了AWT 1.0设计中的缺陷。
Swing并不是专业人士制作Java UI的唯一方式。对于桌面端,可以使用JavaFX。而对于Web端,则需要使用HTML、CSS、JavaScript和JSP构建UI。
我的经验是,大多数想要创建丰富GUI的组织仍然使用Swing,并手动处理所有布局管理器等烦恼。
使用SWT的范围相当有限,仅限于使用Eclipse RCP作为平台的组织。我不确定为什么它在这个平台之外没有流行起来。
很遗憾,Java Swing GUI通常看起来不太好,除非您花费大量时间为它们创建更本地的感觉。即使如此,它们经常在美学上输给专门为Windows编写并使用Window API(如WinForms)的等效程序。
我们通常使用Swing,因为它在标准JRE中支持开箱即用。通常我们在Netbeans中进行初始表单设计和事件连接,然后将其导出到任何我们希望的地方,例如Eclipse。
Netbeans使用标准库(加上一两个必须包含的jar文件)生成纯Java代码,因此在Netbeans中设计表单并稍后转移到其他工具中并不是什么大问题。
有些人建议使用布局管理器手动进行表单布局。我认为只有在您正在做一些需要长期维护的大型项目时才考虑这种选项。否则,这只是太耗费时间而不值得。
我们在Java GUI中依赖于SWT。是的,您必须包含外部本地库,但外观和感觉是本地的,更加响应(尽管Swing在过去几年中变得更快),并且与目标平台上的其他应用程序无缝集成。
Macintosh OS X 创建了自己的 Java 运行时。他们为 Swing 组件提供了与本地应用程序相同的外观和感觉。
我严格使用 Swing。我通过 Web Start 分发“真正”的桌面应用程序,供 Mac 和 Windows 使用者使用并与用户的智能卡读卡器进行接口交互。
NetBeans IDE 提供了一种所见即所得的方式来创建表单。我已经尝试过它,它非常不错,但我们仍然使用 Eclipse 作为我们的 IDE,并通过代码设计表单。