Eclipse AWT/JFace 核心应用学习笔记----01

第一篇 SWT起步篇

第一章 JAVA语言的GUI历史
一、相关概念介绍

1、GUI(Graphical User Interface)图形用户接口

    对于常用的图形化操作系统来说,GUI是最重要的组成部分。GUI是一组计算机接口,它可以以一种可视化的图形,图标及窗口的方式向用户显示操作界面。

2、AWT(Abstract Window Toolkit)抽象窗口工具库

    AWT 是一个具有下拉菜单、命令按钮、滚动条以及其他常见的GUI 控件的应用程序,而且他能在各种操作系统上运行,并且不需要重新编译成针对某一平台的二进制代码。

    AWT 缺点:功能相当弱。AWT 必须使用所有所有图形操作做系统的图形接口功能交集,因为AWT 的界面只有一套。使用AWT 开发的应用程序既缺少流行的GUI 程序特性,又不能达到在显示和操作上如同使用本地窗口构建库开发程序一样的目标。

3、Swing 工具包,AWT的升级版

    尽管Swing在AWT上做出来很大的改进,但它依然没能使JAVA成为构建桌面应用的优秀开发语言和工具。

4、SWT (Standard Widget Toolkit)标准窗口工具包

二、Eclipse 介绍

    1、Eclipse 平台完全是基于Java语言编写而成的,具有很强的跨平台特性,可以在Linux和Window平台下共同使用,也就是同样的代码不加修改的就可以在两个平台上运行。

    2、Eclipse 项目中主要项目及其子项目

 (1)The Eclipse Project

    The Eclipse Project 打造功能完善并且完全免费开源的工业级开发平台,具有很高的工具聚合性。该项目下有三个子项目:

    A、Eclipse Platform Project:是Eclipse 的核心框架产品,它为所有的插件和服务提供构建模型并提供运行环境,提供的框架和服务包含工作台的用户接口实现与本地部件调用服务。提供底层的系统子资源管理与插件生命周管理。

    B、Eclipse JDT (Java Development Tools)Project :是一个非常优秀的Java开发工具集,在Java开发过程中提供非常丰富的功能支持开发,它本身以插件的形式存在于Eclipse Platform中。

    C、Eclipse PDE(Plug-in Development Environment)Project:提供了很多的工具来帮助开发人员给予Eclipse编写插件,使得插件在调试,运行期非常方便。

(2)The Eclipse Tools Project

    The Eclipse Tools Project 项目使更多的开源和非开源的工具作为插件支持Eclipse平台,这个项目的存在可以协调各方开发人员共同开发某些功能的插件,避免重复开发并确保个工具之间刻一个更好的集成。该项目下有三个重要的子项目:

    A、Graphical Editor Framework(GEF)允许开发人员为已有的应用创建一个丰富的图像编辑器接口。GEF运用基于绘图插件Draw2D在Eclipse中创建一个图形环境。用户可以运用GEF提供的公共方法或者在特殊领域中扩展他们。GEF使用能简洁的改变应用于视图模式的MVC 架构。

    B、Eclipse Modeling Framework(EMF):是一个建模框架和基于结构化数据模型的代码生成工具。

    C、Eclipse Visual Editor(VE):是Eclipse为插件开发者提供的可视化的GUI部件编辑器,可以通过拖动的方式任意的摆放和规划部件的布局。

(3)The Eclipse Web Tools Platform Project

        The Eclipse Web Tools Platform Project 项目提供了一套通用并且具有高扩展性的Web开发平台,该平台符合现有J2EE及其相关标准。

(4)The Eclipse Technology Project 

        The Eclipse Technology Project 项目的任务是为那些开源项目开发人员以及自由学者等提供一个参与到Eclipse发展进程中的管道。

(5)The Eclipse Data Tools Platform Project

        The Eclipse Data Tools Platform Project 项目为Eclipse平台提供了一个全新的、对数据库技术提供各种功能的工具。

三、SWT介绍

    1、SWT 的结构

        在IBM开发Eclipse 的过程中,开发人员们使用了一种新型的模式来完成窗口部件的创建:将SWT的功能实现完全构筑在以JNI 为基础,对运行平台的直接调用封装上。它提供了平台无关的API接口。SWT工具箱使开发人员不必面对在使用Java的抽象窗口工具箱AWT或Java 基础类时在许多设计和实现方面所要做的权衡。

    2、SWT 所支持的操作系统

        SWT 的功能没有通过任何的Java 虚拟机来操作,而是直接调用Windows GDI 和Shell 功能。这一点是通过JNI 方法调用完成的。同时SWT 的优点也是它的缺点,SWT 必须要为每一种操作系统提供一套本地的函数库。

三、Sun AWT/Swing 与 Eclipse SWT 的比较

    1、之所以SWT 看起来要比Swing 容易开始的多,是因为SWT 做了很多在Swing 中需要开发人员去做的事,例如Model - View - Controller 模式的应用,可以插拔的look and feel 机制等,但是SWT 的这些优点使得它存在着潜在的问题:资源释放。Swing 与 AWT 遵循Java 规范中的资源自动释放原则,而SWT 不再使用本地资源时需要开发人员在程序代码中现实的释放资源。

    2、SWT 的优势和不足

        优点:(1)Look 和Feel 与本地操作系统对应 (2)简单实用的API 可以使开发人员快速上手 (3)由于本地的JNI 的调用机制,SWT 应用程序运行速度非常迅速 (4) 可以仿造本地系统的风格画出本地操作系统中没有的组件。

        缺点:(1)每一种操作系统都需要有相匹配的JNI 程序供SWT 使用 (2)没有Swing 那样灵活。

        总的来说,如果需要利用Java 面向对象、跨平台等种种优势,同时又希望创建一套本地的操作系统风格兼容的GUI 应用,那么SWT 应该是首选的。

四、SWT 与 JFace 、Eclipse

    SWT 与 JFace 、Eclipse 的关系可以用以下两个关键字来概括:

    (1)JFace 是SWT 的扩展

    (2)Eclipse 的UI 界面基于JFace。

















    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章