Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java IDE  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:[请教]请教大家用什么工具设计UI? [Re:rainman]
SimonLei



CJSDN高级会员


发贴: 288
积分: 100
于 2003-03-09 15:25 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
这是我在sailing上的一个老帖子。虽然我也没有完美的解决方案,sigh

GUI设计和实现是Java 中Application 和Applet中的
“面子工程”。我们一直盼望这Java能够和VB一样,把一些控件
拖拉到设计面板上,就可以达到我们预先设计的模样。然而,
遗憾,Java的GUI使用复杂的Layout来做控制,如果界面复杂
而且经常变动时,实现和维护一个Application就是一场恶梦。

我们先看看通常的实现方法。也就是学习并且记住各种
Layout的属性,设置,然后手工code。不幸的我曾经被摊上这样
的事情。界面设计的一点变动,都需要手工修改代码,然后运行
看效果是否一致,再修改,再运行,永无宁日。有志于此道的同
仁可以参考:http://java.sun.com/docs/books/ 下面的两本
《Java Look and Feel Design Guidelines》以及Swing Tutorial。

万幸,第一个版本VisualCafe的出现将我从水深火热当
中解放了出来,它的同类JBuilder是我后来实现GUI主要工具。然后,
快乐是短暂的,换来的只是无穷无尽的痛苦跟长叹。使用
JBuilder来实现的GUI,看起来很不错,只要把控件拖拖拉拉就可以。
但是,首先,并不是拖拖拉拉那么简单,你要设定好Layout,要使用
诸多的Panel来届定各个控件。其次,一旦碰到你的设计需要改变时,
千万别手工修改代码,否则JBuilder可不一定认得。最后,如果你
打算用JBuilder来修改GUI的设计,那么你的工作量和重头开始区别
不大,因为你要改变Layout,增加Panel,来达到你想要的目的。所
见即所得是真的,但为了达到那个所得,我又陷入了水热火深当中。

而且,更为不幸的是,当你想重用某部分界面的时候,你会
怎么做?将这部分代码拷贝出来?违反了不重复的原则。抽取出来做
成一个Bean?对嘛,这才是好办法。可是真的是好办法吗?别忘了,
你把这部分界面抽取出来,意味着又是一次手忙脚乱的重新布局。

布局的痛苦一直缠绕着我,直到有一天天上掉下个星星砸着
我的脑袋,让我脑袋震荡了一下,想到应该有办法把GUI的布局用某种
语言记录下来,直接修改这种布局描述语言。当然了,如果有了想法
就自己实现,那我会累死的。既然有google君这样博见多闻的智者,
自然我会先向他讨教一二。结果令人满意,因为确实有很多这样的项目
存在。当然也让我很沮丧,满以为很新的想法,没想到已经有这么多先驱
了。沮丧归沮丧,然而赶紧尝试这一解决方案才是正路。于是下载了无数
的此类项目:

http://www.jeasy.de/
http://www.vienas.ch/smaker/
http://jgb.sourceforge.net/
http://www.trcinc.com/go/sl.asp?s=xmltalk
http://jxul.sourceforge.net/
......

经过尝试和淘汰,我终于解脱了。要问XML 定义GUI有什么优点,
我可以一一道来:

1. MVC。使用XML定义GUI,你根本不会妄想在XML当中就做事件的处理对不对?
2. 修改方便。不用费劲去拖动控件,只需要修改XML就好了。
3. Reuse。当你需要重用某个View的时候,只要把它include进来,就可以使用了。
还有Action也是这样。这样,这个Dialog当中的一个Panel(例如有若干个输入
框),就可以很方便的用在我这个Frame当中了,比如用在右边的那个Panel当中。
Action就更不用说了。
4. 代码移植性。先给大家介绍个好站点,http://www.creamtec.com/webcream/ 它是
干吗的?它是把Swing做成的Application给你变成jsp/servlet的。牛吧。但是,
有了XML,我们也可以做到这一点,说不定还不用它那么费劲。当然,真正这样做的
例子我还没见到。
5. 还是代码移植性。我们一直在谈Java,可是这种用XML写的View,可以理直气壮的用在
其他语言当中对不对?

缺点当然也有:
1. 非所见即所得
2. 使用的是运行时编译,而不是code generation,造成非要运行才能发现错误
3. 非标准化。不过这个我已经发现了一个事实上的标准XUL:
http://www.xulplanet.com/tutorials/xultu/
http://www.mozilla.org/xpfe/xptoolkit/xulintro.html

以上是我若干年来用Java 设计和实现GUI的一点点心得,大家尽管拍砖。



You may say I am a dreamer, But I am not the only one.
My blog+wiki: http://blogsite.3322.org/

话题树型展开
人气 标题 作者 字数 发贴时间
7475 [请教]请教大家用什么工具设计UI? yamakasy 412 2003-03-09 13:57
6086 Re:[请教]请教大家用什么工具设计UI? rainman 10 2003-03-09 14:04
6130 Re:[请教]请教大家用什么工具设计UI? SimonLei 2088 2003-03-09 15:25
6363 Re:[请教]请教大家用什么工具设计UI? Biubiu 438 2003-03-09 18:30
6187 Re:[请教]请教大家用什么工具设计UI? Biubiu 49 2003-03-09 18:31
6117 Re:[请教]请教大家用什么工具设计UI? SimonLei 135 2003-03-09 19:34
5845 Re:[请教]请教大家用什么工具设计UI? 小雪初晴 57 2003-03-12 14:37
6125 Re:[请教]请教大家用什么工具设计UI? yamakasy 121 2003-03-13 13:30
6093 Re:[请教]请教大家用什么工具设计UI? Biubiu 176 2003-03-21 15:00
6156 Re:[请教]请教大家用什么工具设计UI? yamakasy 26 2003-03-22 20:54

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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