Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java GUI 设计
打印话题 寄给朋友 订阅主题 |
作者 | 有了Swing为什么还要SWT? [精华] |
shawnma
发贴: 46 积分: 0 |
于 2005-02-02 14:05
我最近看到有许多人在学习SWT,我对SWT不是很了解,因为我一直在用Swing进行开发。我只是想问一句,既然已经有了Swing为什么还要SWT? 菜鸟请教,基本程序调试不通,急急急急急急!!! |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
tzutolin
版主 发贴: 581 积分: 65 |
于 2005-02-02 14:31
一般而言, SWT 的反應速度會比 Swing 教人滿意, 因此有人就用 SWT 來開發應用程式. 6月14日北京网友聚会照片集 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
caike
发贴: 163 积分: 16 |
于 2005-02-02 14:48
IBM更喜欢AWT的实现机制,做出了SWT,SWT采用的是最大公倍数的做法。SWT大部分都是用的本地操作系统的控件,一些在windows里有的控件可能在linux下没有,对这种控件才采用自己绘制的方式。SWT采用类似JAVA虚拟机的方式,在不同的平台,有不同的开发包,我们写的java代码是一样的,但不同平台下看起来外观是不一样的,但性能提升很高,据说和C++做的界面速度差不多:) 也许你会问哪种更好,引一名话:this is equivalent to asking whether a harmmer is better than a screw driver,of course ,a hammer wieldded with sufficient force can probably drive a screw into a wall ,and the butt of a screw can be used in a pinch to knock in a nail. However, a good carpenter keeps both harmer and screw drivers in her tool box and will use the tool that is appropriate for the job at hand. 个人感觉以前java做界面完全没有优势,从外观到性能(我很喜欢Swing的look and feel,可以改变风格),SWT的出现改变了性能上的缺点,再加上JFace,及Eclipse的RCP,我还是倾向于用SWT。 不想平庸的过一辈子 各位大俠,幫幫忙看看 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
shawnma
发贴: 46 积分: 0 |
于 2005-02-02 17:43
谢谢,长见识了。 各位大俠,幫幫忙看看 |
作者 | SWT只能用于做Application,而AWT、Swing可以做Applet与Application [Re:caike] |
YuLimin
简单就是美 版主 发贴: 866 积分: 123 |
于 2005-02-02 18:43
AWT只能用于做Application,而AWT、Swing可以做Applet与Application ===>不好意思,打错了一个字:( SWT只能用于做Application,而AWT、Swing可以做Applet与Application
YuLimin edited on 2005-02-02 23:02
当兵不后悔!后悔不当兵! 超越黎明时空,追逐时代潮流! 人,是要靠自己的!简单就是美! 我的Java:http://www.Java2Class.net 我的Blog:http://YuLimin.ItEye.com 关于女孩子从事软件开发的问题 |
作者 | Re:AWT只能用于做Application,而AWT、Swing可以做Applet与Application [Re:YuLimin] |
Jove
CJSDN高级会员 发贴: 1228 积分: 194 |
于 2005-02-02 22:11
AWT不能做Applet么 笔误? CJSDNer6月14日北京聚会花絮 |
作者 | Re:AWT只能用于做Application,而AWT、Swing可以做Applet与Application [Re:YuLimin] |
PrimeJava
一切皆有可能 发贴: 142 积分: 15 |
于 2005-02-02 22:43
YuLimin wrote: 他想说的是:SWT只能用于做Application,而AWT、Swing可以做Applet与Application I Believe I can fly! 最新JDK 5.0 API.chm中文版与大家分享! |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
errorter
发贴: 114 积分: 2 |
于 2005-02-04 16:33
SWT似乎是从以前的smalltalk团队发起的吧? 记得以前Jove还是谁来着发过一个关于SWT历史及发展的帖子 网通服务器速度测试 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
wdh113
发贴: 18 积分: 1 |
于 2005-02-04 23:23
FooSleeper 翻译 原文: http://groups.yahoo.com/group/straight_talking_java/ http://groups.yahoo.com/group/straight_talking_java/messages/24236 翻译整理:FooSleeper 最后修改:2004-03-03 译注:本文来自straight_talking_java@yahoogroups.com讨论组,已经是一年多前的文章。Alan Williamson是Java Developers Journal的编辑,下文来自他在IBM的一个消息来源。SWT和Swing的论争我见过不少,Netbeans和Eclipse的也同样多。译者翻译此文并不是要激起什么争执,也不是支持哪一方(虽然我的确是站在SWT一边的),更不是要攻击Amy。我最重要的理由是,这是一篇有趣的文章。里面有内幕、线人、公司政治、垄断巨头、美女、商界风云……足够拍一出电影。有趣,这就够了。不过此文反映了IBM对Swing的看法和SWT的由来,还是有一点营养的。 From: Alan Williamson <alan@n-ary.com> Date: Wed Nov 6, 2002 10:31 am Reply-To: <straight_talking_java@yahoogroups.com> To: <straight_talking_java@yahoogroups.com> Subject: SWT ... the scoop?(SWT……内幕?) 好了这就来……阅读……消化……再阅读……再消化…… -------------------------------- 谢谢你的回复。我很乐意给你提供Swing和SWT背后的一些信息,既然你还把我当作你秘密的“IBM内幕线人”。 要想弄清楚为什么一切都被弄得如此混乱,要从几年前只存在AWT的时候说起。SUN当时已经建立了一套基本的可移植控件类,这些类映射到不同操作系统上的原生窗口组件(native widget),显然下一步应该继续增强这套模型,除了初始的CUA 92组件(文字、按钮等等),再继续加上表格、树、记事本、滑块等等……当时的AWT还满是漏洞,远不能称为可靠,还需要SUN的coder们去修补。SUN的developer们如Graham和Otto总是习惯于公开把他们的bug归咎为操作系统的差异,比如“Windows和OS/2的焦点次序不同”或者“在……之间Ctrl-X的行为不一样”,以及其他苍白的托辞,好让批评的火力从SUN太早释出代码这个问题的真相上移开。然后Amy Fowler来到了SUN。不是我大男子主义,Amy是个聪明的美女,大多数呆头呆脑只懂技术的开发人员都要被她捏在手里。 Amy来自一家Smalltalk公司,叫做Objectshare,在那里她负责搞UI类库。跟Java相比Smalltalk的历史有些悲惨,曾几何时有3家庞大的Smalltalk公司——IBM、Parc-Place和Digitalk。在90年代初期3家公司的市场份额大致相等,生活是美好的。Parc-Place采用仿窗口部件(emulated widgets)的设计(即Swing的设计),IBM和Digitalk则采用原生窗口部件(native widgets)。后来IBM压倒了另外两家,因此他们打算合并成一家,假设叫做Parc-Place Digitalk。随后当他们试图将他们的产品融合到一个叫做Jigsaw的计划中时爆发了一场大战,计划由于政治原因失败了(开发人员实际上已经能让它运转起来),就因为原生和仿造两派的死战。Amy赢得了精神上的胜利,不过在IBM我们赢得了他们所有的生意,因为这两家公司在一整年里除了吵架什么都没做。当尘埃落定之后PPD(Parc-Place Digitalk当时已改名为Objectshare,跟Windscale改名为Sellafield的原因相同——让人们淡忘之前发生的灾难)的股票价格从60美元掉到了低于1美元1股。他们因为伪报收入被NASDAQ摘牌,从此消失。此时SUN正走上与PPD类似的技术方向,于是PDD的技术人员都把他们的简历投到了SUN。Amy被雇佣了,她承诺通过轻量级方案解决所有窗口组件的问题,因此说服SUN管理层让她当了GUI开发部门的头头。她是拿着“这里原来的人都搞砸了,我是来解决的”的钥匙进来的。随后Amy雇佣了所有她过去在Parc-Place的旧朋友,让他们来开发Swing。 显然Swing应该做的是仅仅成为一个绘制框架,给那些希望创建地图软件或者绘图软件的人们使用,无论如何,应该围绕AWT类库来建造它,按钮之类的东西仍然交给AWT来管。SUN的人比如Philip和Mark已经让AWT能够处理表格、树和记事本(notebook,?),所以Swing的方向应该说很明显了。但那些毁了PDD的人不干,他们非要把一切都弄成轻量级的。由于SUN管理层的无知,再加上Amy无情的政治手段,造成了我们今天所见的混乱局面。Amy还使SUN相信Swing是作为Mozilla项目的一部分与Netscape联合开发的,事实上这只是她的宣传伎俩。 在IBM,我们从第一天起就憎恶Swing。庞大、满是错误,而且难看至极。原先我们的工具如VisualAge for Java都是用Smalltalk(用的是原生窗口组件)写的,所以当我们将这些工具向Java代码库迁移时,我们需要一套窗口组件。IBM这边的开发人员都是原来搞Smalltalk的那一批人,我们对管理层要求用Swing来构建WebSphere Studio工具都非常不情愿。Swing是个可怕的充满缺陷的怪兽。在WebSphere Studio最初的预览中,当与Microsoft Visual Studio作对比演示的时候,我们所有的客户都讨厌它,就因为它的外观,而不管它的功能有多强。大多数消费者都不会买一辆让人觉得难看的车,哪怕这车有一台出色的引擎。因此我们开始了一个项目,是把我们的Smalltalk原生窗口组件移植到Java上去。这个项目是加拿大的Object Technology International小组做的。这个项目获得了成功,被运用在在我们发布的VisualAge Micro Edition产品中,VisualAge Micro Edition后来成为J2ME开发方面一个非常成功的IDE。但是OTI的人发现,Swing在读取Windows事件方面有极严重的缺陷,我们甚至无法进行SWT(S开始是Simple的缩写,不过后来变成了Standard的缩写)和Swing间的互操作。他们在读事件队列的时候用了一种可能留下内存漏洞的方式,所以我们不得不采用我们自己的查询Windows事件队列的循环,以纠正这个错误。我们试了一次又一次让SUN修复这个错误,但Amy就是听不进去,所以我们才决定SWT和AWT/Swing不能共存。我们甚至在SWT中定义了自己的Point和Rectangle类——整个工具包对AWT或Swing都没有任何依赖。我们把这个工具包放到了Eclipse中,这是一个工具平台,它的总体设计目标就是要战胜Micrsoft和Visual Studio。Eclipse是开源的,所以任何人都可以在上面构建自己的东西,我们已经有像TogetherSoft和Rational这样的公司移植到了上面。我们的竞争者是Microsoft,所以我们所有努力和注意力都是从正面针对Microsoft。 不管怎么说SUN对此非常不满。他们的Netbeans跟Eclipse做的是相同的事,因此他们向IBM高层抱怨。他们认为SWT是要将你绑到Windows上,这纯粹是胡说,因为SWT能通过GTK在Mac/Linux上运行,以及一大堆嵌入式平台。他们拒绝让Eclipse获得Java认证,因为里面有原生代码,所以Eclipse产品必须很小心地使用单词“Java”这个SUN的商标。Eclipse甚至不能把自己称为一个Java IDE,SUN已经威胁过要采取法律行动来制止IBM在任何时候把Eclipse称作一个Java IDE。结果之一就是IBM在Eclipse上创建的GUI设计工具,允许你构建Swing/AWT GUI,却不让你往里面拖放SWT窗口控件。 将SWT从Eclipse中分离出来是完全可能的,只需要把DLL抠出来放到路径中,并使用窗口组件工具包来给你的银行或者保险或者其他什么应用程序开发GUI。再次说明,我们无法更进一步,因为SUN把我们的双手绑上了。虽然作为Eclipse开放源码协议的一部分,CPL允许我们提供这样的解决方案,但SUN已经很清楚地表明他们不希望我们这样做。 对于用户社区来说,无论IBM和SUN的最终动机是什么,我发现有一点总是很有趣:喜爱Swing的人总会说“一旦你花上几年时间去掌握它,你就能正确地使用它”,这基本上是他们在试图证明和维护他们辛苦得来的用途有限的专门技术;而SWT的拥护者们说的是“哇,这真快,这跟原生的一样,还可以用XP皮肤……它还又轻又小”。有一句话是我喜欢的,我们的一个用户说,Swing就像Java决定不通过操作系统来实现原生的IO,而是通过磁头马达API自己来读磁盘的扇区。Swing基本上就是这样的,它拿着个底层的“paint(Graphics)”方法,自己来绘制所有的窗口组件。 -------------------------------- 后记:现在的情况已经有所不同,SWT到底还是单独发布了,VE也承诺在1.0版的时候支持SWT的GUI设计。 庆祝Cjsdn成立四周年:www.cjsdn.com试运行 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
elliott
发贴: 33 积分: 1 |
于 2005-02-06 11:56
这个问题就像 有了电信宽带还为什么要有铁通、网通宽带一样。。 多几家竞争不是很好么? 至少对我们有好处。。多一样选择。。 关于Jute Forum的长期发展给官方的建议 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
YuLimin
简单就是美 版主 发贴: 866 积分: 123 |
于 2005-02-10 21:22
Java由Applet(AWT)起家,现在SWT似乎。。。所以感觉不具什么可比性吗? 再说: SWT只能用于做Application,而AWT、Swing可以做Applet与Application 所以,各取所需吧。。。 当兵不后悔!后悔不当兵! 超越黎明时空,追逐时代潮流! 人,是要靠自己的!简单就是美! 我的Java:http://www.Java2Class.net 我的Blog:http://YuLimin.ItEye.com 大家介绍一下提高英语表达能力的办法 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
ildg
发贴: 12 积分: 0 |
于 2005-02-15 17:15
swt速度快, 和swing有数量级的差别, swing让p4变成了286, 而swt让p4更像p4。 swt做出的程序更具有本地化的特征, 也就是说, 如果你用swt写一个windows程序, 仅仅从外表上别人很难看出你是用java写的。 至于swt有什么劣势, 前面也有人说了, swt只能用于application。 还有就是目前swt中的组件很少, 而且功能也太简单。 关于Jute Forum的长期发展给官方的建议 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
九佰
版主 发贴: 983 积分: 126 |
于 2005-02-16 13:08
现在写的程序一般要求对applet和application都要支持。 就是说在IE里面执行就是applet,直接执行就是application,除此之外 在界面和功能上没有什么区别。 由于applet方式需要下载,使用的jar包,尽可能的小。 所以使用的技术和方法,优先考虑封装在java中的。 http://www.teamlet.org 海纳百川,有容乃大 壁立千仞,无欲则刚 智者不惑,勇者无惧 止戈为武,仁者无敌 |
作者 | Re:有了Swing为什么还要SWT? [Re:YuLimin] |
yipsilon
发贴: 248 积分: 31 |
于 2005-02-16 16:53
YuLimin wrote: Java Web Start 程序, SWT也可以做的. JWS技术在企业级应用很多的. 请求JAVA学习方向????? |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
yipsilon
发贴: 248 积分: 31 |
于 2005-02-16 16:56
好文, 引用了: http://blog.csdn.net/yipsilon/archive/2005/02/16/289850.aspx 怎样设置背景色?JFrame |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
longwang
发贴: 71 积分: 1 |
于 2005-02-21 13:38
swing让p4像286也太夸装了点吧? 不知道说这些话的同志用swt和swing做过多少程序。有没有仔细剖析过自己界面慢的原因。同样如果我用swing开发一个eclipse的界面,我就不认为会比目前的慢多少。 swt作界面至少有一方面不行,就是做图像处理方面。 从性能角度,在1.4.x下,个人认为swing自身的性能已经足够了。仅仅在资源受限的设备上,swt有优势。 当然还有一点,apple开发的jre和sun开发的jre,swing有太多的不兼容,与之相关同样的程序在mac osx下运行问题经常多多。swt此类问题应该少很多(具体没有试过)。 Design pattern的一点体会 |
作者 | Re:有了Swing为什么还要SWT? [Re:longwang] |
cnfree
CJSDN高级会员 发贴: 118 积分: 13 |
于 2005-02-21 15:08
longwang wrote: 这一点我觉得不同意,至少我觉得swt的 GC已经很强大了,甚至比 Swing更强大。但是毋庸置疑,SWT和Swing都能做出非凡的东西来,比如永中Office,采用Swing编写的,我觉得真得很棒,同样我自己就用SWT做了一个和Mediaplayer完全一样的界面的Demo。大家有谁知道永中Office的实现原理,感兴趣的说 请求JAVA学习方向????? |
作者 | Re:有了Swing为什么还要SWT? [Re:cnfree] |
longwang
发贴: 71 积分: 1 |
于 2005-02-21 15:24
swt的 GC画画图,还可以,但是图像处理就不行了。 与swing联系紧密的,sun提供了java2d,jai,能够方便的对图像进行卷积,旋转,扭曲,更换颜色空间,自定义样本分量,样本带等。jai自身还集成图像分块。 而swt,对图像处理,就不能直接针对Image的数据缓冲区操作,因为每次操作就必须重新create新的Image才能用于显示,就这个地方,所带来的性能问题,就已经决定不能进行图像处理了,至少是为了这个性能,自己要用不少技巧。 所以,我能够用swing做一个photoshop出来(当然要支持那么多滤镜,还是要研究一下的),但是没有信心用swt也能做出来。 怎样设置背景色?JFrame |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
cnfree
CJSDN高级会员 发贴: 118 积分: 13 |
于 2005-02-21 16:51
呵呵,专业性太强了。这就不清楚了 我的java扫雷程序 |
作者 | Re:有了Swing为什么还要SWT? [Re:longwang] |
Jove
CJSDN高级会员 发贴: 1228 积分: 194 |
于 2005-02-21 17:31
longwang wrote: hoho, admire! 庆祝Cjsdn成立四周年:www.cjsdn.com试运行 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
kite
发贴: 121 积分: 14 |
于 2005-02-21 18:03
不会吧!SWT和OpenGL的binding完全可以做这些的呀。 讨论 面向对象 与 JAVA |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
cnfree
CJSDN高级会员 发贴: 118 积分: 13 |
于 2005-02-21 19:20
越扯越远了,这么专业的话都去做游戏吧,Java般的Quake II 大家玩过了没有? 我有一点感想和初学者们同享(原创) |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
songbenlijia
发贴: 18 积分: 0 |
于 2005-02-22 02:59
经典的东西总往往是那些让人久久难以忘怀的东西。 swt和awt/swing都好!!!!!!!!!! 请求JAVA学习方向????? |
作者 | Re:有了Swing为什么还要SWT? [Re:longwang] |
caike
发贴: 163 积分: 16 |
于 2005-02-22 09:04
longwang wrote: 提醒:SWT有Draw2D 不想平庸的过一辈子 J2EE面试题集锦(附答案)... |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
YuLimin
简单就是美 版主 发贴: 866 积分: 123 |
于 2005-02-22 09:49
这个技术方面的讨论还真不错的哦:) 建议此贴加为精华贴,可否?妥否? 当兵不后悔!后悔不当兵! 超越黎明时空,追逐时代潮流! 人,是要靠自己的!简单就是美! 我的Java:http://www.Java2Class.net 我的Blog:http://YuLimin.ItEye.com 加入CJSDN真好! |
作者 | Re:有了Swing为什么还要SWT? [Re:caike] |
longwang
发贴: 71 积分: 1 |
于 2005-02-22 13:06
Draw2D我没有用过,不过据我了解Draw2D主要是提供一套轻量级组件机制,和图像没有关系,不是和Java2D对等的api。 最新JDK 5.0 API.chm中文版与大家分享! |
作者 | Re:有了Swing为什么还要SWT? [Re:kite] |
longwang
发贴: 71 积分: 1 |
于 2005-02-22 13:17
kite wrote: OpenGL部分,目前还没有release出来吧?似乎还在内部,当然现在可以下载使用了。 不过我认为,OPGL的设计初衷并不是给图像处理用的,主要是还是3D方面,当然2D的一些东西他也能够做。而目前基于awt\swing的Java2D以及Jai的Image机制,在这些方面已经很完善了,提供了大量的途径和api方便使用。 关于女孩子从事软件开发的问题 |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
tzutolin
版主 发贴: 581 积分: 65 |
于 2005-02-23 07:27
Of course you can. Just use SWT and Java2D together. |
作者 | Re:有了Swing为什么还要SWT? [Re:tzutolin] |
longwang
发贴: 71 积分: 1 |
于 2005-02-28 13:26
tzutolin wrote: 当swt可以直接使用RenderableImage和RenderedImage的时候,我想这个是个好主意。否则,当要显示的时候,还要进行Image间的转换,是很烦的一件事。 J2EE面试题集锦(附答案)... |
作者 | Re:有了Swing为什么还要SWT? [Re:shawnma] |
hgq23
麻辣烫 发贴: 25 积分: 0 |
于 2005-03-18 22:32
晕.很长时间没关注图形这一块了.整天写些网站的垃圾. 都不知道出这些东西了. 不过我看嘛. 知识嘛.有时间就看看喽. 关于Jute Forum的长期发展给官方的建议 |
|
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |