使用Eclipse 进行SWT 编程 "The best way to predict the future is to invent it
"— Alan Kay 1
为什么要使用SWT
SWT 是IBM 开发一套跨平台的GUI 开发框架
为什么IBM 要创建另一种 GUI 呢
为什么他们不使用现有的Java GUI 框架呢
要回答这些问题,我需要回到 Java 的早期时代
Sun 已经创建了一套跨平台的GUI 框架 AWT (Abstract Windowing Toolkit)
这个 AWT框架使用了本地窗口组件(native widgets)不过它存在 LCD 问题
这个 LCD 问题导致了它失去主要的平台特性
换句话说,如果平台A 有窗口组件 1-40 而平台B 有窗口组件 20-25,那么这个跨平台的AWT 框架只能提供这两个集合的交集
为了解决这个问题,Sun 创建了一个新的框架使用模拟窗口组件(emulated widgets)来代替本地窗口组件(native widgets)
这个方法解决了 LCD 问题同时提供了丰富的窗口组件,不过也产生了其他的问题
例如,Swing 应用程序不再和本地程序在样子上一致
虽然 JVM 有了很大的改善, 但是Swing 应用程序仍然存在它们本地配对物所没有的性能问题
而且,Swing应用程序消耗了太多的内存,故不适合用于 PDA 和移动电话等小型设备
IBM 发现这些方法都无法满足他们的需求
因此,IBM 创建了新的GUI 库叫做 SWT,它解决了 AWT 和 Swing 框架中的问题
SWT 框架使用JNI 访问本地窗口组件(native widgets),如果一个窗口组件在主机平台上不能获得,那么SWT 会模拟这个不能获取的窗口组件
一个 SWT 应用程序的基础材料 Display, Shell