Java GUI:SWT/Swing/AWT的介绍及比较(1)

关键字:  Java SWT  Eclipse  Java GUI  Applet编程  Swing编写

内容摘要:本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit(AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的工具。

AWT 的一个很好的特性是它通常可以对 GUI 组件自动进行销毁。这意味着您几乎不需要对组件进行销毁。一个例外是高级组件,例如对话框和框架。如果您创建了耗费大量主机资源的资源,就需要手动对其进行销毁。

AWT 组件是 “线程安全的(thread-safe)”,这意味着我们不需要关心在应用程序中是哪一个线程对 GUI 进行了更新。这个特性可以减少很多 GUI 更新的问题,不过使 AWT GUI 运行的速度更慢了。

AWT 让我们可以以自顶向下(top-down) 或自底向上(bottom-up) 或以任意组合顺序来构建 GUI。自顶向下的意思是在创建子组件之前首先创建容器组件;自底向上的意思是在创建容器(或父)组件之前创建子组件。在后一种情况中,组件的存在并不依赖于父容器,其父容器可以随时改变。

通常来说,AWT GUI 都是不可访问的。系统并没有为 AWT 程序员提供 API 来指定可访问性信息。可访问性(accessibility)处理的是残疾人可以怎样使用应用程序的问题。一个应用程序要想有很好的可访问性,必须与运行平台一起,让残疾人可以通过使用适当的辅助技术(提供其他用户接口的工具)来使用这些应用程序。很多政府和企业都有一些强制要求应用程序为实现可访问性而采用的标准。

Sun 希望 Java 语言能够成为一种 “编写一次就可以随处运行(write once, run everywhere,即 WORE)” 的环境。这意味着可以在一台机器上开发和测试 Java 代码(例如在 Windows® 上),然后不经测试就可以在另外一个 Java 主机上运行同样的 Java 代码。对于大部分情况来说,Java 技术都可以成功实现这种功能,但是 AWT 却是一个弱点。由于 AWT 要依赖于主机 GUI 的对等体(peer)控件(其中每个 AWT 组件都有一个并行的主机控件或者对等体)来实现这个 GUI,这个 GUI 的外观和行为(这一点更重要)在不同的主机上会有所不同。这会导致出现 “编写一次随处测试(write once, test everywhere,即 WOTE)” 的情况,这样就远远不能满足我们的要求了。

Tags:


上一篇:数据库自动网络备份
下一篇:浅析ASP.NET中页面传值的几种方法

Leave a comment

Please be polite and on topic. Your e-mail will never be published.

You must be logged in to post a comment.