0.序言
還是老風格,從頭寫些基本的東西,幫助自己,也幫助正處于困惑中的別人。今天介紹的是Eclipse下的SWT的配置過程。自己前兩天要做個項目,配置了半天都不正確,后來慢慢總結了一下,不同環境配置的方法可能略有差別吧。
1.什么是SWT
用java的人一定都知道AWT和Swing,而SWT(Standard Widget
Toolkit)則是由Eclipse項目組織開發的一套完整的圖形界面開發包,雖然當初僅僅是IBM為了編寫Eclipse的IDE環境才編寫的一套底
層圖形界面
API,但是隨著Eclipse的大范圍使用,人們也開始對這套GUI開發包做了深入的研究,并且不少人都開始轉向SWT的使用。也許有人會問,既然有了
Swing,
那為什么還要SWT?答案很簡單,因為人們的理念不同。SWT的原理是根據運行者的操作系統不同調用JNI來完成圖形界面的繪制的,如果你用的是
Windows,那么建立的窗口就是windows風格的,還可以用XP的皮膚,如果是Linux或者MacOS的話,則在代碼不改變的情況下,繪制出相
應風格的界面。而Swing則是完全從底層開始自己“手繪”界面的,這也就導致了速度比較慢和工人的“風格詭異”的問題。當然,由于Sun的強大推動力和
AWT/Swing的普及,很多人仍然在使用Swing作為首選的GUI開發工具包。引用一句話做比喻:Swing就像Java決定不通過操作系統來實現
原生的IO,而是通過磁頭馬達API自己來讀磁盤的扇區。Swing基本上就是這樣的,它拿著個底層的“paint(Graphics)”方法,自己來繪
制所有的窗口組件。
2.下載與安裝
Eclipse本身就自帶了SWT的相關jar包,所以不用下載,除非你想看看SWT的源碼,當然這對于開發者來說是很有好處的。另外,如果不喜歡自己手
寫GUI代碼的話就去下載一個可視化開發插件吧,目前比較常用的是WindowBuilder Pro(原來的swt designer),http://www.instantiations.com/windowbuilderpro/左側點Download里面就可以下載,根據不同的Eclipse版本,選擇相應的文件,必須要說明的,這是一個商業軟件,需要注冊(這也就以為著有注冊機可以下載,注冊機的地址就不多說了,上網搜一下就可以了)。下載完成后,安裝即可。
3.配置
我下載的是zip版,解壓縮之后直接拷貝到插件目錄下的,所以配置起來有些麻煩,之前貌似用過一個二進制安裝程序版的,安裝完之后基本上不需要配置就可以用了。這里講解一下我配置的過程。
打開Eclipse,新建,在新建向導中,找到SWT/JFace Java Project,單擊Next。

接下來輸入項目名稱,選擇JRE(一般默認即可),單擊Next,在這一步中,選中Libraries選項卡,單擊Add External JARs,添加外部jar包。

這里一共要添加6個,在你的Eclipse的插件(plugins)目錄中,分別是:
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar;
org.eclipse.swt_3.2.1.v3235e.jar;
org.eclipse.core.commands_3.2.0.I20060605-1400.jar;
org.eclipse.jface.text_3.2.1.r321_v20060810.jar;
org.eclipse.jface_3.2.1.M20060908-1000.jar;
org.eclipse.equinox.common_3.2.0.v20060603.jar
根據版本不同,文件名的數字部分可能會有些不同,添加好后就可以單擊finish了。
這時就建立好一個SWT項目了,但是別著急,如果這時按照Run as Java
Application的形式運行你的SWT程序的話很可能會提示:Exception in thread "main"
java.lang.UnsatisfiedLinkError: no swt-win32-3235 in
java.library.path。這是由于沒有導入SWT原生庫的緣故。因此我們要右鍵單擊項目,選擇Import,接下來選擇General-〉
File
System來導入它,這個swt-win32-3235以dll文件的形式存在于..\MyEclipse\eclipse\plugins
\org.eclipse.swt.win32.win32.x86_3.2.1.v3235中,通過Browse按鈕選擇這個目錄,然后在窗口左邊選中
這個目錄,在右邊的文件中選中swt-win32-3235.dll這個文件,finish就可以了。

4.測試
在新建好的項目中單擊右鍵,選擇新建,Designer->JFace->ApplicationWindow,填入新建的類名稱和包就可以
新建一個ApplicationWindow了,系統會自動建立好相應的代碼框架,選擇Run as Java
Application,就可以運行這個自動生成的SWT程序了。
5.結束語
說實在的,SWT有很多值得研究的東西,包括Eclipse的插件開發相關技術,當然以后有時間會把學習心得寫出來的。這篇文章只是簡單的介紹了SWT的配置過程,如果需要了解SWT相關技術可以查詢相關資料。