Eclipse并不自帶GUI的可視化開發(fā)工具,那么如果要在Eclipse進行可視化的GUI開發(fā),就需要依靠第三方的插件。
Eclipse官方提供了一個叫做Visual Editor(VE)的開源GUI插件,功能還是比較強??梢愿鶕?jù)用戶的界面GUI設(shè)計,自動生成相應(yīng)的JAVA代碼。同樣也可以通過相應(yīng)的JAVA代碼,生成其匹配的可視化GUI編輯界面。不過VE缺點比較大,我從3.1到3.2之前一直在用VE,沒有多少改觀。VE是通過另外啟動一個JVM來模擬執(zhí)行GUI的class,然后在Eclipse的界面內(nèi)生成一個可視化效果。
回顧一下Visual C++,NetBeans等其它IDE進行GUI可視化的方法,都是基于另外一個界面管理資源文件,非用戶可以直接修改的。而直接通過程序代碼來管理可視化的GUI編輯器,就需要極強的代碼parse能力。很可惜,VE想這樣做,確沒有能夠做到。
VE使用起來問題很多,網(wǎng)上有網(wǎng)友直接評價說VE是“可用性不強”。我自己用起來的感覺,問題就出在一下幾個方面:
1). 另外啟動JVM速度很慢,而且如果要同時打開幾個Visual Class,那么就要啟動幾個JVM,內(nèi)存消耗也大。而且,有些時候,反復(fù)打開關(guān)閉一個Visual Class,JVM還啟動不起來。
2). 對于用戶自己編輯的可視化Java代碼的parse能力很弱。常見的錯誤就是,明明是正確的可視化GUI代碼,但是VE里面窗口打開半天,結(jié)果只能顯示一把叉。很多時候,就根本不能顯示出一個完整的可視化窗口。而對于窗口上某個控件的定位能力不強,用戶自己的代碼稍微轉(zhuǎn)幾道彎兒,VE就不知道這個控件是在哪里產(chǎn)生的了,頂多只能顯示出來,但是無法可視化編輯。
4). 3.1的VE編輯的代碼到了3.2的VE里面,顯示出來完全不一樣了。
5). 安裝比較麻煩,還需要用戶自行去安裝不只一個的輔助插件。
綜上所述,VE真的“可用性不強”
SWT-Designer是大家公認的,最強的Eclipse下開發(fā)GUI的插件http://www.swt-designer.com/。很多Eclipse書籍上都是直接拿SWT-Designer來講解如何在Eclipse開發(fā)GUI界面程序。不過SWT-Designer是一個收費的插件。不收費的是基礎(chǔ)版本,功能受到很大的限制。當然,網(wǎng)上也有完整版的破解版。SWT-Designer做得比較大,6.0最新的安裝文件有幾十M,可想其功能之強大。
jigloo嚴格意義上來說也是收費的,不過他提供了non_commercial的版本,而這個版本的功能和commercial是完全一樣的http://www.cloudgarden.com/jigloo/。作為個人開發(fā)來說,是不受限制的。jigloo很小,最新的版本才3MB多,安裝也比較簡單。
jigloo同時支持SWT和Swing。
jigloo也是完全基于Java代碼的,不過它的code parse的能力遠比VE要強,也要快。至少我很多在VE下出現(xiàn)問題,不能顯示的Visual Class可以很好地在jigloo下編輯,至今還沒有遇到j(luò)igloo不能編輯,parse出錯的時候。而jigloo還可以集成了一寫比較好的Java GUI風格代碼的支持,功能上比VE要強大一些。
當然,3MB多的插件,再強也強不過SWT-Designer完整版的,但是比其基礎(chǔ)版的要好很多。而SWT-Designer也并不是完全基于JAVA開發(fā)的,比如Windows版本的,還攜帶了dll文件。而jigloo是完全基于JAVA開發(fā)的,下載下來只有一個class的zip文件,也支持Eclipse的在線安裝。
jigloo的安裝很簡單,和其它Eclipse插件一樣,不需要任何安裝程序,直接解壓出來就行了。
創(chuàng)建新的窗口,直接輸入File->New->Others->GUI Forms就可以了。
而如果要打開一個已經(jīng)存在的Visual Class,可以直接右鍵點擊,選擇Open With->Form Editor打開就可以了。打開后,首先要進行code parse,不過這個速度很快,也不需要像VE那樣還啟動一個JVM。
下面是我的Eclipse下使用jigloo的截圖:
根據(jù)3大Eclipse的GUI開發(fā)插件可以看出,基本都是基于Java code的GUI編輯管理。這種編輯器管理,當然就比以前Visual C++那樣管理Windows界面程序要困難很多。但是,現(xiàn)行的很多IDE,比如Visual Studio .NET,2005都還是能夠做得比較快。主要的就是要看起code parsing的能力。
VE前面的缺點已經(jīng)總結(jié)得比較多,不知道這個官方的插件什么時候才能讓人真正放心。作為開發(fā)者來說,心里還是最想給VE加把勁的,畢竟VE是開源的,隨便用的。
SWT-Designer功能最強大,可惜價格不低。而jigloo可謂介于兩者之間,對于個人開發(fā)者來說,可以免費使用,而且其功能也足夠到開發(fā)各種大型的GUI應(yīng)用程序了,應(yīng)該是一個合適的選擇。