学习笔记——Swing篇(一)

Swing学习笔记(一)

2014年3月7日

知识点:
       Swing的发展历史;Swing和AWT的关系;对等组件体系;
正文:
       来公司实习发现公司竟然在用Swing做界面开发。说实话当我知道之后,我瞬间感觉没前途了!!!说我有偏见或者见识短?说实在的对于一个刚毕业的学生谁不想学些新技术能跟上时代的步伐啊,而且对于我这个准备走技术路线的学生来说,学业务和Swing这样的老技术实在是不甘心啊。
      记得当初在学校学习Java的时候关于AWT、Swing、Applet这些都是一带而过的基本上都没什么涉及,Swing、AWT、Applet就感觉像是上个世纪遗留下来的老爷爷老奶奶似的跟我们这些时代小青年有着深深的代沟和当前流行的Android等等更是相距甚远。
      Swing在我“幼小”的记忆中是一个很老很老的东西了,其实应该说现在的技术更新太快了,一两年可能就老了,比如还在用Unity 3.3的我在U3D行业中已经是个落后分子了。。。。悲剧的我啥都落后!。
      关于Swing的评价是褒贬不一。其实我很想不明白为什么公司现在还在用Swing?难道是ERP软件不太重视新技术更重视业务和技术稳定性吧。(话说学ERP业务快烦死我了!!!!=  =)
       “一把老刀”是我对Swing的印象:
               
       不过也有人告诉我Swing这个经典宝器,用好了就是“宝刀未老”:

                    

      不管Swing是不是“宝刀未老”,既然还在这个公司就得学啊!!!找度娘和谷大叔查了些关于Swing的资料,看看时间还是08、09、10年居多的!看来俺上高中期间它还是很活跃的啊。
     其实在当初学Swing和AWT的时候对于它们之间的关系就不是很明白。今天看了下Java 2图形设计卷里面关于Swing的介绍感觉清楚了不少。
Ø  下面整理下Swing的发展历史。
       首先Swing和AWT绝对不是前任和现任的区别,也就是Swing不是AWT的替代品。Swing的产生要从Java对于图形用户界面工具包(GUI,这个很熟悉,学习U3D的时候学了不少GUI的开发插件)的开发说起。
话说从1995年Java产生并迅速火遍全球开发者之后(纯属资料来源,本人那个时候还不知道电脑为何物呢!),Sun公司(看,还有Sun公司呢!)认识到Java API中可视化API(即提供图形化绘制的API)的重要性。
开发用户界面最快的方法是在本地组件(又叫做对等组件)上做大部分工作,并在本地组件的顶层放一层Java类。这样,Sun公司的开发小组用了不到6周的时间推出了重量级的对等组件体系的AWT包,AWT包在图像绘制方面是交给了系统本地组件来做的(应该是C++写的)。所以最初的AWT包就好像Runnable类一样都是通过JNI来调用系统本地API实现的。
l  知识点——对等组件体系:
      对等组件体系没有查到权威性定义,简单来说对等组件体系就是说每个Java组件在系统中都对应一个组件包(我们应该注意Java的跨平台特性而不仅限于我们常用的操作系统,不同系统间本地化尤其是图像组件差别还是很大的。)。如我们在用AWT包绘制窗口的时候系统本地是有一个窗口对应我们的Java窗口的,这样在不同系统上它的样式会有很大不同。
     对等组件体系结构没有扩展性,并导致了不同平台上不一致的问题产生。此外,AWT没有可靠的面向对象基础。例如,最初的事件模型需要一个switch语句,以便根据事件类型来决定激活哪段代码。这种switch语句是对面向对象的破坏,这种根据对象类型进行切换的swich语句应该通过多态性机制来处理(注:switch语句有时在面向对象设计中是有效的,但AWT的事件模型不是这种情况。)
        Java开发人员、Sun公司或Sun公司的竞争者逐渐注意到原来的AWT的缺点。不久,出现了许多用来替代AWT的工具包。同时,Sun发布了AWT的1.1版,它做了许多改进,包括一个新事件模型和对轻量组件(非对等组件)的支持。然而,AWT1.1版还不够好用。
       JavaSoft认识到Java领域在用户界面工具包的使用上将会出现分裂,于是他们与Netscape合作开发Swing组件集。Netscape和Sun公司的工程师用了将近一年半的时间来开发Swing,Swing在AWT上进行了巨大的改进。
        虽然有些Swing组件替代了AWT的重量组件,但Swing不是AWT的替代品,而是AWT的扩展,Swing使用了大量的AWT下层构件,包括对图形、字体和布局管理器的支持。要更深入了解Swing,就必须对AWT的下层构件有基本的了解。
l  小结:
      Swing不是AWT的替代品,它是AWT的扩展,Swing很多东西是继承自AWT包的,Swing包在Javax包中。
       除了AWT和Swing外,Java的图像界面开发工具还有SWT等,不过在我的印象中Java对于图形等媒体数据的处理是很差的。至于像AWT、Swing、SWT这些技术到底好不好,它到底是把刀还是把枪,我这个小学生是没有资格评价的。我想大多数人也只能说自己是不是喜欢吧。毕竟在我认为Java适用的是研究架构级别的语言,不像c++这类做算法的语言,它有自己的局限性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值