我对使用什么感到困惑。我看到的选项是awt,Swing和swt。
对于所有平台(Mac,Windows和Linux)上的桌面Java应用程序,哪个应该最适合使用最少的平台相关代码?
答案 0 :(得分:5)
摇摆。
AWT是旧的,太低级别,SWT具有本机组件,并且不随JRE一起提供(它是第三方库)。 Swing是高级(-ish)和纯java。
答案 1 :(得分:5)
AWT已经过时了,尽管它的一些类和设计构成了Swing API的基础。
以下是我在Swing和SWT中创建应用程序之间的区别:
<强>摇摆强>
+
构成标准Java-SE平台的一部分,因此分发难题更少+
您可以跨平台创建一致的外观+
控件是轻量级的,因此创建自己的控件相对容易-
如果您需要Swing应用程序看起来像本机应用程序,可能会有很多工作; Swing可以用平台look'n'feel来设计,但结果并不总是足够让每个人都满意<强> SWT 强>
+
轻松创建使用本机小部件的简单应用程序-
手动资源管理-
您需要分发特定于平台的库-
您面临的问题是最常见的问题 - 并非所有平台都可以使用所有小部件,因此有些小部件将自定义为SWT 虽然我对SWT提出了更多的弊端,但我不会打折。您选择哪种技术取决于您的项目要求。在UI开发方面,挑选图书馆只是一个开始。
Swing是一个简单,低维护的选项,我同意其他海报,这可能是最适合你想要的。
答案 2 :(得分:1)
我会选择Swing作为使用Java打包的最佳选择。然而,即使Swing也可以让你每次都跳过所有相同的箍,所以我建议你研究一下构建在它上面的各种框架,并处理构建应用程序的大部分样板工作。
有一个Swing Application Framework的JSR,我在它仍在积极开发时使用过它,但它目前已被冻结。他们的项目页面建议fork该项目,另一个名为GUTS,它使用Google Guice作为依赖注入。 Netbeans也有Netbeans Platform。
我知道这些框架的范围超出了“UI”的范围,但它们处理的是诸如Swing不能做的模型和UI之间的数据绑定。