特性 | AWT | Swing | SWT |
实现机制 | awt采用最小公约数的办法,只提供所有操作系统都有的控件 全部调用本地操作系统的控件 | Swing 只为诸如窗口和框架之类的顶层 组件调用操作系统控件。 大部分组件(JComponent 及其子类)都是使用纯 Java 代码来模拟的 | 大部分都是用的本地操作系统的控件 一些在windows里有的控件可能在linux等其它系统下没有,对这种控件才采用自己绘制的方式 |
开发者 | Sun JDK | SunJDK | IBM Eclipse项目 |
特性 | AWT | Swing | SWT | 比较 |
可移植性 | 在 Java 技术的每个版本都成为标准配置 | 是 Java 技术的一种标准配置 它很容易依赖于最新版本的 Java 语言所提供的特性,这可能会强制用户更新自己的 Java 运行时环境 | 不是 Java 技术的标准配置,必须单独进行安装 在不同操作系统下需要不同的运行库 由于不同系统GUI元素行为可能不同,需要在部署前测试 | Swing强于SWT |
外观 | GUI 的外观和行为在不同的主机上会有所不同 | Swing 通常看起来并不像是本地程序,有些模拟不同主机的外观,有些则提供了独特的外观可以定制皮肤 | SWT 应用程序实际上就是一个主机应用程序与其他主机程序有类似的界面 | SWT更漂亮些,SWing有发展潜力 |
速度 | 之前很慢,Jdk1.5后swing运行速度有了很大提高 | 调用本地控件绘制,速度快 | SWT稍强,随着JDK的改进,SWing潜力很大 | |
组件 | 丰富,包含所有常用界面控件 学习资料,控件丰富,JGraph支持图形编辑器开发 | 丰富,包含所有常用界面控件 丰富的插件支持,GMF支持图形编辑器开发,RCP支持类EClipse界面应用界面开发 | 都可以满足开发需要,Eclipse更方便 | |
IDE | 支持Java的IDE均支持 Jbuilder,Netbean,Eclipse VE,都支持可视化控件编辑 | 只有Eclipse支持 Eclipse VE, swt-designer, jigloo 支持可视化SWT编辑 | 目前Eclipse是最强大的java ide,jbuilder2007也转为eclipse架构 |
swing有架构上的优势,随着jvm,jdk的改进,可能在速度和外观上会越来越好。
SWT目前随着Eclipse的快速推广成为很多人的选择。
评论