zoukankan      html  css  js  c++  java
  • 第一章 第二节 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] 译注:很遗憾,译者在网络上没有找到这个插件。

    返回目录

  • 相关阅读:
    百度缓存
    thrift文件编写
    thrift初窥
    Shutil模块介绍
    多线程访问网站的爬虫的问题
    点滴记录python linux中的个人经验
    Yii框架的form处理
    使scrapy支持ftp下载
    mojoportal学习——文章翻译之站点图标
    mojoportal学习之特色模块对Artisteer2.4生成的模板的支持
  • 原文地址:https://www.cnblogs.com/ols/p/2162530.html
Copyright © 2011-2022 走看看