Eclipse与Netbeans,SWT与Swing

        前一阵子要用java做一个带有界面的上机作业,真的敲起代码来,才发现Swing真的是很麻烦,就一个简单的界面,用代码来实现也是非常繁琐。

        至于Swing的布局管理器,我觉得除了GridBagLayout还有一点实用性之外,其他的像是BoxLayout,GridLayout之类的还真没什么用,用之作出来的界面非常死板难看。

        后来下了WindowBuilder,一个Eclipse的插件,可以用拖拉的方式建立窗口。可以是基于Swing的,也可以是基于SWT的。我试着建了一个基于Swing的窗口,那个卡啊,添加新控件或是改变尺寸的时候会卡上一秒左右吧。。。只能算是勉强能用,不过还是会比手写强了不少。而建立基于SWT的窗口就流畅了很多。

        SWT是IBM开发的一个java界面库,采用了与Swing不一样的思路。Swing是轻量级组件,SWT是重量级组件(轻量级组件的意思是自己绘制组件,而重量级组件是调用本地操作系统的组件,不得不说这两个词翻译的不好,因为我一直以为这两者的差别是代码量的差别。。。)两者各有各的优点。

        Swing是sun在AWT失败(单指界面部分)之后开发的界面库,要说明的是AWT是重量级的,它的缺陷就是为了顾及java的可移植性,它取的是世界上所有操作系统共有的那部分控件,于是乎,交集的结果就是AWT中的组件少得可怜,就Button,Label这些比较基本的,而高级的需要程序员自己实现。于是后来的Swing就采用了自绘控件的方法,因为一切都自己搞定没有依赖,所以离“一处编写,到处运行”也更近了一步。不过齐缺点也是很明显的,就是慢。。。(后来似乎有改善)

        IBM的那伙人就是受不了Swing的慢,自己写了SWT,Eclipse就是用SWT写的。我觉得SWT很大一部分是因为Eclipse的出色才会为人所称道吧。SWT采用的方法是如果系统有该控件,就调用API实现,如果没有,就自己画。因为是调用本地系统的控件,所以SWT被人称道的地方就是快,而且可以调用本地系统的特性,这个事Swing做不到的。事物有长处就必有短处。。。因为调用了本地控件,那么就可能在不同的系统下出现差别,于是就成了“一处编写,到处调试”。。。

        在网上一直看到netbeans做界面很强大的言论,于是在对WindowBuilder失望时候就去下了netbeans。网上还有很多人说netbeans启动很慢,比eclipse慢了很多。不知道是那些言论比较旧了还是因为我的eclipse装了太多插件,总之我启动netbeans的速度比Eclipse快了一些。netbeans的界面美观程度会比Eclipse差一些,看起来也没Eclipse强大(不过具体的我还不了解,毕竟还没怎么用过)。不过我要说的是netbeans做界面真的是比Eclipse强大了不少(单指Swing),很流畅,辅助线也很方便。

        当在设置布局里选择自由设计是,控件可以自由的到处拖放,没有了那些死板Layout的麻烦。我看了一下netbeans生成的代码,使用的是GroupLayout布局,没见过,教科书上也没有提到(我们学校出的书上,线程那里还在教我们用stop(),囧。。。这个在JDK1.2中就废弃了啊。。。),查了一下,发现是jdk6中新加入的布局管理器。这个布局才像话嘛,不过看了代码之后,发现这布局不适合人用,只适合程序生成。。。。

        就这么多了.


           转载请注明出处:木杉的博客      http://blog.csdn.net/mazhibinit/article/details/7657333

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值