第一章 第二节 AWT

第二节  AWT

返回目录

 

Java的介绍中,最令人兴奋的莫过applet程序利用applet这项新技术,可以通过网络分发并在浏览器上执行。用户和开发人员都很欢迎这个新事物,因为它可以简化跨平台的开发、发布和维护——对商业软件开发来说,原本是非常有挑战性的。

为了简化java GUI的开发,Sun最开始开发了一套与众不同的的图形库,在所有的平台上都是java特有的显示外观(look and feel)。applet的主要技术合作者,Netscape,认为applet应该保持运行时系统的look and feel。他们希望,applet可以在外观和行为上都像它所运行的平台上的其他程序一样。Netscape的态度一直摇摆不定,而Sun则放弃了它的Java look [1]

为了实现Netscape本地look and feel”的目标[2]AWTJDK(Java Development Kit)第一个版本的最后开发阶段被创建。AWT的缺省实现使用了一种对等(peer)”机制,也就是说每个GUI控件在系统底层有一个对应的组件。

例如,每一个java.awt.Button对象(AWT的按钮)将在底层视窗系统中创建一个对应的按钮。当用户点击那个按钮的时候,事件将从本地实现库传送到JVM(Java虚拟机),最终传送到与java.awt.Button对象相关联的逻辑(logic)。对等系统的实现以及Java组件与对等组件之间交互的实现都隐藏在底层JVM实现中,所以语言级的Java代码(Java-level code)仍然支持跨平台。

然而,为了遵守"write once, run anywhere"的许诺,Java不得不采取一些妥协和折衷的办法。确切的讲,Java采取了“最大公约数[3]”的方法,即AWT仅仅提供所有窗口系统所共有的特性。为了实现高级特性(像tree view),就需要开发人员自己开发高级窗口控件,留给用户各种各样的体会。

其他的问题也减缓了人们对applet的接受。Applet运行在一个安全的"沙箱"里面,并且能够阻止恶意的applet对文件系统、网络连接等资源的滥用。尽管沙箱提供了安全性,但它"阉割"了应用程序。

毕竟,一个不能连接网络或保存文件的应用程序有什么好处呢?Java GUI应用程序也不能像本地程序一样迅速响应。这部分地归因于当时的硬件性能以及Java的解释器工作方式。

因此,用AWT开发的应用程序,既缺少流行GUI程序的诸多特性,又不能在外观和行为方面与那些用本地窗口库开发的程序一致。应该有一个更好的库来让Java GUI取得成功。


[1] 原注:Eclipse.org press release, "Eclipse.org Consortium Forms to Deliver New Era Application Development Tools," http://www.eclipse.org/org/pr.html.

[2] 译注:主要用于测试的一个插件。

[3] 译注:很遗憾,译者在网络上没有找到这个插件。

 

返回目录

posted @ 2011-09-01 22:23  ols  阅读(324)  评论(0编辑  收藏  举报