Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4

[Eclipse笔记]SWT真正的优势不是快这么简单

Posted on 2005-06-20 13:55 laogao 阅读(4307) 评论(9)  编辑  收藏 所属分类: On JavaOn Eclipse

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

顺便来看一个WOW魔兽世界的XP界面风格下的Eclipse的截屏:
WOW_Style_Eclipse_Snapshot.jpg

这个界面风格可以随时跟你自己默认的XP风格对换,这样的效果和方便的更替如果要Swing来实现岂不是有点勉为其难?我不是说SWT是万能的,只是想让大家知道,Swing有它好的地方,SWT同样也有。

Feedback

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2005-08-15 01:48 by swing
swing 也可以和当前操作系统风格一致啊

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2005-08-15 12:59 by 大胃
Swing可以做到完全模仿某一个风格,但那始终是模仿出来的。而且我很怀疑一个Swing做的GUI可以在Windows桌面主题变化以后自动跟着变化,除非你刻意实现了所有可能用到的主题,并编码去侦测OS的主题变化。当然外观都还是其次,重要的是GUI控件的默认行为,如就是应用在各个GUI控件上的众多快捷键,Windows默认是这样,其他操作系统未必。如果Swing真做成Windows的翻版,那就注定会被MS牵着鼻子走了,而且将很难做到平台中立。所以说,Swing不应该、也没有必要实现Windows下面各种花哨的主题风格。

这是我的看法,希望你能证明我错了。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2006-05-07 22:46 by xxx
你的确错了,Swing是在运行的时候跟随OS主题变化而变化的。
另外,Swing在1.6采用操作系统的内置的gui重画方法,画出的组件和OS完全一致,操作系统的界面变化时,它的代码基本不用变。
叫做图形代理法,就是使用操作系统的本地代码将组件画在虚屏中,再刷新到界面上,因此永远紧随操作系统的变化而变化。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2006-05-08 18:36 by 大胃
谢谢你对本话题的关注以及对我的纠正。Swing随着Java版本的升级不断进步,是我乐于看到的。

只是我觉得Java的本质决定了Swing不可能也没必要做到完完全全的OS忠诚,Java的"跨平台"和平台之间的尤其是那些细微之处的千差万别(不只是外观)是一个在我看来不可能调和的矛盾。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2006-05-10 14:34 by 卡卡西
swing的MVC实现的相当精彩,swing的编程模型优雅而强大。swing的灵活性相当优秀。还有swing的架构很美。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2006-05-10 14:41 by 卡卡西
swing当中的组件一语双关,在概念上你可以把它看作GUI组件。在技术上它又扮演着MVC中的C 。妙。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2006-05-11 09:32 by hhh
Swing可以做到完全模仿某一个风格,但那始终是模仿出来的.

本地的图形也是绘出来的,Swing用 java实现又怎么了。
Swing也是一个绘制框架,它有极大的灵活性来实现一个新的look and feel.
Swing是一件艺术品且具有极高的实用性。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2008-03-26 20:02 by 电玩
swing为什么要跟本地外观保持一致?Vista就那么养眼吗?有创意的美工 加上 优秀的GUI设计师,windows界面有能怎么着?
swing完全可以和flash抗衡的,目前的SWT还做不到这一点。等着JDK 7发布吧。你如果对桌面有兴趣,到我博客上看看www.blogjava.net/javagui。flex和swing,我以后就搞这个了。

# re: [Eclipse笔记]SWT真正的优势不是快这么简单  回复  更多评论   

2008-08-13 19:14 by guolan85
怎么可以在swt的界面上加载别的控件?
比如加个swing或者直接加别的控件

只有注册用户登录后才能发表评论。


网站导航: