SwingDesigner
簡介:
SwingDesigner 是用Eclipse開發的 一款免費的、開源的、功能上與Mattise Project相近的界面設計工具插件. 他可以簡化您開發應用程序的步驟,縮短開Swing于VE(Eclipse的另一款插件),每個組件用一個getXXX返回,代碼可讀性很強,而且開發者可以自由修改代碼,保存后保持和界面同步更新.Designer 發周期.它具有很多Mattise 所不具有的功能. 生成的代碼也沒有NetBeans 生成的代碼那樣復雜, 這個工具不需要form文件,生成的代碼也是類似
開發工具 : Eclipse3.4
JDK版本 : JDK 1.6 (NimbusLookAndFeel 需要JDK1.6 u10)或更高
開發平臺 : Windows XP SP2
開發動機:(為什么是基于Eclipse的SwingDesigner?)
一直以來非常喜歡Swing,對Swing的研究也有很長一段時間了,一直希望Swing在Java桌面開發中扮演重要的角色。但是很久以來Java桌面開發始終是個弱項,其中很大一部分原因是缺乏比較好用的界面設計工具。
NetBeans的界面設計工具(以前叫Matisse Project)的出現給Java的Gui開發尤其是Swing開發帶來了希望,但遺憾的是當前Java集成開發環境仍然是Eclipse的天下,據統計,目前市場上至少2/3的份額是被eclipse占有。雖然netbeans已經獲得長足的進步,并進一步吸引了更多的developer,但是由于歷史習慣和遺留系統等等問題,這個市場份額在最近幾年肯定還是eclipse的天下。
當然eclipse也有很多很優秀的界面工具插件,可惜的是免費的插件其質量難以與netbeans的匹敵,好用的插件又都是收費的。因此一直想為eclipse開發一款免費的、開源的、功能上與Mattise Project相近的界面設計工具,算是為Swing的發展做一點貢獻。
從今年1月份開始,我來到一家新公司,主要做基于eclipse插件平臺的開發,得以學習了eclipse的插件開發知識。以前曾經使用 swing做過一個swing的界面設計工具,但由于是一款獨立的工具,沒有集成到任何IDE中,因此幾乎沒有實用價值。因此決定在閑暇時間將這個工具重新用eclipse插件技術進行開發。
開發這款工具的目標計劃:
1. 界面布局模仿Netbeans界面設計工具,操作和netbeans設計工具基本一模一樣,容易直觀的實現布局。這是第一目標。目前已經實現。
2. 代碼的生成和解析不需要輔助form文件,直接從源代碼文件進行解析生成。生成代碼可讀性要強,要可以編輯并且同步。目前已經基本實現,有些折中處理,采用約定代替配置的辦法提高代碼解析速度。
3. 直接支持樹和表的界面設計,不需要寫代碼,直觀的采用界面操作,便可以直接生成表和樹的數據模型代碼。此功能已經實現。而且目前的框架可以很容易擴展,實現類似其他復雜組件的界面設計。
4. 工具的性能良好,界面設計功能流暢,代碼解析/生成速度快。目前來看,速度和性能還不錯,初步的打算是將速度放在最后處理優化。
5.支持在設計時切換LookAndFeel,并能生成所設定LookAndFeel的代碼。這樣就能做到設計時和運行時完全一致。而NetBeans的設計工具只能以NetBeans自身相同的LookAndFeel設計,然后使用另外的LookAndFeel預覽。
6.更多的特性 將在以后的版本中添加.
代碼位置
http://code.google.com/p/visualswing4eclipse/
授權方式:
本工具使用的是LGPL授權方式。照顧商業利用和開源改進而采用此授權。
目前支持的Eclipse平臺是3.4,JDK請使用1.6
聯系方式:
Msn : rehte @ hotmail . com
常見問題解答:
1、變量命名為什么是$nameLabel這樣的,是為了讀取方便么?
Re:這兒是netbeans form解析法和VE的AST語法數解析法的一個折中,提高解析速度,降低
解析復雜度,同時有拋棄了form文件的一個折中辦法,被設計的界面組件的field名稱需要以$作為識別,當然這個$是可以替換的。目前還沒有做這一步。
2、方法名字為什么是changeBtn_action_actionPerformed這樣的,不符合java的規范,有配置可以改么?
Re:這個以后會增加配置進行配置,但目前太多其他的細化工作要做,本人精力實在有限。
3、我這里用的英文版的eclipse3.4,改變變量時,確認和取消按鈕為亂碼,沒有國際化支持么?
Re:目前只是出于功能實現階段,國際化還沒有考慮,不過eclipse的國際化是很簡單的事情,打算把它作為最后階段解決的問題。
4、netbeans中雙擊button可以直接生成action調用方法,希望也提供這個功能。
Re:這個沒有問題。只不過這兒雙擊是調出in-place editor來實地編輯組件值。比如雙擊Table和tree能夠調出直接編輯表格和樹的設計器。
5、怎么沒有直接切換到代碼的視圖,還有到了代碼后我直接 運行 怎么出來不了東西。。?
Re:目前不好用是因為功能還沒有完全完成。很正常,因此我把版本定在0.9.0,甚至應該更低,但是目前大部分功能框架和實現已經完成,缺少只是細化,所以我希望對于Swing和SWT以及Eclipse RCP開發功底比較深的人能夠加入進來,幫助完善。
開發步驟:
1、新建一個Java工程
2、安裝插件以后,在New Class Wizard中可以發現一個Visual Swing Class,選擇該項以生成可視化JPanel,目前只支持JPanel,以后可以很容易擴展,會有更多的支持。
初始化界面
目前完成的特性截圖:
下面是一個典型的設計界面的場景,紅框標出的是該插件提供的視圖和按鈕,支持LookAndFeel切換:
這兒是拖拽組件時顯示布局提示,和netbeans的界面布局設計類似:
這是生成的源代碼,可以直接修改源代碼,保存后,會自動同步的到設計界面上去:
這是一個表格的設計器,你可以直接在界面上拖拽,添加刪除編輯表格:
這是一個樹的設計器,你可以直觀的添加刪除編輯樹的節點:
多LookAndFeel同時設計的抓圖,含有NimbusLookAndFeel
NimbusLookAndFeel顯得得體大方,字體也很好看,圖標精致,組件顯得既圓潤而又不過分華麗。不知你注意沒有,新的Java2D的字體渲染是使用本地渲染庫渲染的,已經完全和本地程序的字體一模一樣的。的確不錯:)