AWT和Swing的強勁對手
從Java誕生至今,已經在太多的領域取得成功,然而它卻很少在圖形界面程序上嶄露頭角。究其原因,Java語言缺省的圖形界面開發包AWT和Swing實在是難脫其究, 無論速度和外觀,它們都難以讓人接受。 如今,Eclipse組織編寫的SWT開發包,為Java程序員提供了AWT和SWING之外的一個更佳的選擇。在本文中,對SWT做了簡單但盡可能全面的介紹。
Java 語言的聲望和它在桌面應用程序(GUI程序)所取得的成就顯然極不相符,至今仍然很少能看到非常成功Java桌面程序。雖然有 JBuilder,Netbean,JProbe等大型軟件作為代表,但這仍不能證明Java的GUI程序是成功的:它們的外觀總是和同一操作系統平臺下的其它軟件顯得格格不入。對機器配置的需求也似乎永無止境,這使得它們只能被一些總是擁有當前最高性能PC的程序員們所容忍,或是那些不在乎金錢和時間的專業用戶所接受。對絕大多數計算機使用者來說,AWT和Swing代表著怪異的界面和無法接受的速度。Standard Widget Toolkit(SWT)或許是Java這一噩夢的終結者,廣大Java程序員終于可以開發出高效率的GUI程序,它們擁有標準的外觀,幾乎沒有人能看出你的程序是用Java寫出來的,更為重要的是,這些程序是跨平臺的。
SWT本身僅僅是Eclipse組織為了開發Eclipse IDE環境所編寫的一組底層圖形界面 API。或許是無心插柳,或是有意為之,至今為止,SWT無論是在性能和外觀上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已經開發到了2.1版本,SWT已經十分穩定。這里指的穩定應該包含兩層意思:
一是指性能上的穩定,其中的關鍵是源于SWT的設計理念。SWT最大化了操作系統的圖形構件API,就是說只要操作系統提供了相應圖形的構件,那么SWT只是簡單應用JNI技術調用它們,只有那些操作系統中不提供的構件,SWT才自己去做一個模擬的實現。可以看出SWT的性能上的穩定大多時候取決于相應操作系統圖形構件的穩定性。
另一個穩定是指SWT API包中的類、方法的名稱和結構已經少有改變,程序員不用擔心由于Eclipse組織開發進度很快(Eclipse IDE每天都會有一個Nightly版本的發布),而導致自己的程序代碼變化過大。從一個版本的SWT更新至另一版本,通常只需要簡單將SWT包換掉就可以了。
要在Eclipse安裝文件中找到SWT包,Eclipse組織并不提供單獨的SWT包下載,必須下載完整的Eclipse開發環境才能得到 SWT包。SWT是作為Eclipse開發環境的一個插件形式存在,可以在${你的eclipse安裝路徑}plugins路徑下的眾多子目錄下去搜索 SWT.JAR文件,在找到的JAR文件中包含了SWT全部的Java類文件。因為SWT應用了JNI技術,因此同時也要找到相對應的JNI本地化庫文件,由于版本和操作平臺的不同,本地化庫文件的名稱會有些差別,比如SWT-WIN32-2116.DLL是Window平臺下Eclipse Build 2116的動態庫,而在Unix平臺相應版本的庫文件的擴展名應該是.so,等等。注意的是,Eclipse是一個開放源代碼的項目,因此你也可以在這些目錄中找到SWT的源代碼,以上是AWT和Swing的強勁對手的介紹,相信這會對開發很有幫助。
【編輯推薦】