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。

















    

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