我知道这个问题相当普遍,而且是一场神圣的战争。你能解释一下为什么当AWT不成功时SWT是成功的,而这两个框架使用相同的原生ui控制思想。是什么让SWT与AWT相比有所不同?如果可能,只需几句话。
谢谢。
答案 0 :(得分:23)
AWT是原始的跨平台,基于本地对等体的GUI小部件集。它引起了很多关于跨平台不完全一致的抱怨。 Sun构建了Swing小部件集来回答这些问题,使用纯Java构建它(没有本地同行),但人们抱怨它很慢而且很难看。
IBM将SWT构建为Swing的基于本地同行的竞争对手。它之所以成功,是因为它看起来不错,性能良好并且跨平台非常一致。它通过被许多流行应用程序使用而巩固了它的地位,Eclipse和Vuze是最明显的。
答案 1 :(得分:12)
SWT提供了比AWT更丰富的本机重量级小部件集 - 一个正确的比较是SWT与AWT / Swing。因此,SWT看起来比AWT / Swing更原生。虽然这可以被认为是成功的,但它也可能是一个缺点,具体取决于您需要实现的内容。在SWT的情况下,您只使用具有所有可能的操作系统限制的重量级本机小部件。使用AWT / Swing,您可以选择将轻量级Swing(纯Java)小部件与本机AWT小部件混合使用,以获得更好的性能。