经常看见网上许多人对SWT的认识无非就是说它运行速度快,其实这是个误区。在SWT诞生之初,也许运行速度是它的一项主要目标,但是它真正的优势其实并非这么简单,让它真正发光的是它对宿主操作系统的忠诚度,一方面,对用户来说,他们操作的界面表现形式,包括外观、快捷键等等可以和他们常用的软件高度一致;另一方面,由于它直接封装操作系统API的这个特性,任何你发现的界面上的问题或者说某个控件特殊的处理方式,你都可以在操作系统这一层的文档中找答案,而不是在SWT中间找。这跟Swing很不一样,Swing追求界面在所有平台的一致性,而不是对当前平台的其他本地应用的一致性。给我的感觉,Swing这样的做法实际上是瞄着一个移动的靶子,永远在赶路,因为它总是需要不停的跟着操作系统的变化和创新而变化与模仿。在这一点上,SWT的做法的确要高明得多。
顺便来看一个WOW魔兽世界的XP界面风格下的Eclipse的截屏:
这个界面风格可以随时跟你自己默认的XP风格对换,这样的效果和方便的更替如果要Swing来实现岂不是有点勉为其难?我不是说SWT是万能的,只是想让大家知道,Swing有它好的地方,SWT同样也有。