使用SWT界面设计在Eclipse
1。为什么使用SWTSWT是一个跨平台的GUI开发工具包由IBM开发的。为什么IBM开始你自己的生意,开发一个GUI工具包,而不是使用现有的太阳由AWT,秋千,java 2D,java GUI java 3D作为一个框架,它是一个很长的故事。(我记得读BBS上关于SWT起源后)。
在SWT,太阳提供了一个跨平台的GUI开发工具包AWT(抽象窗口工具包)。虽然AWT框架也使用原生窗口组件(native widgets),它一直无法突破液晶显示器的问题。液晶的问题导致了一些主要的平台特性的损失。如果你不明白,(事实上,我不明白),换句话说,如果平台具有部件(1)的40,而平台B部件(20)25,然后跨平台的AWT框架仅能提供这两个窗口组件的交集。
为了解决这个问题,Sun已经创建了一个新的框架,而不是使用本地窗口小部件,框架使用仿真工具。这种方法解决了液晶显示器的问题,提供了一组丰富的窗口组件,但它也带来了新的问题。例如,在Swing应用程序的界面外观不再是类似的本地应用程序的外观。虽然这些Swing应用程序在JVM实现最大的性能改进,他们仍然有一些性能问题,他们的母语都没有。和Swing应用程序消耗太多的内存,所以摆不适合小型设备,如PDA和手机。
IBM试图彻底解决由AWT和Swing框架带来的上述问题,IBM创建了一个新的GUI库,这是SWT。SWT框架访问原生窗口组件通过JNI。如果窗口的一部分不能被主人发现(主机)平台,SWT自动模拟它。
2的构成。SWT应用程序
一个SWT程序的基本组成部分是显示界面(显示),命令接口(shell,命令输入和操作初始化)和窗口部件(widgets),显示负责管理事件循环和控制UI线程和其他线程之间的通信。外壳是一个窗口这是通过在应用程序的操作系统的窗口管理器管理。每个SWT应用程序至少需要一个显示屏和外壳1多实例。
图1:从不同的角度SWT应用程序
图1显示了从不同角度的SWT应用。左边的图是一个简化的用户界面对象的继承图。中间的图显示的UI对象的容器结构(围护结构),右边的图是在创建UI外观。
如果一个应用程序使用多个线程,每个线程使用分配给自己的实例显示对象,程序员可以使用静态方法display.getcurent()来对显示对象的当前活动实例。
壳是用来在一个特定的操作系统显示窗口。外壳可以最大化,最小化,或归。有两种类型的壳。第一是高层次的外壳,这是显示的子窗口,它也是重要的窗口。第二类是对话的外壳,这取决于在其他的shell窗口的存在。壳窗最终成为上述类型,取决于什么类型的风格(风格位)传递给shell构造函数创建的外壳时,外壳的默认值是DialogShell。那就是,如果你没有一个参数,默认是一个谈话的壳如果一个显示对象是给一个参数,将一个高层次的壳壳。
一些窗口部件的属性必须设置在创作的一开始,这些窗口部件的属性的样式位。在SWT类,风格点定义为一个常数。例如,按钮=新按钮(壳,