Swing第四刀:代碼盡散換芳華
《Swing大刀》系列中提到的項目源碼,如今終于整理完畢給大伙送上。其實中間很多代碼都是在邊看球邊寫的,有點心不在焉,不過僅供參考,獻丑一下也無妨。
源碼中的類不多,分為兩個包:一個是free.*,一個是free.test.*。其中free.*這個包是整個小框架的核心代碼和類,其image子目錄是其中用到的各種資源圖片。free.test.*則是對框架的使用示例,包括一些相關圖片資源。也就是說,free.*可以認為是“產品級別”的,而free.test.*則是“項目級別”的,是框架使用的一個例子。整個框架的初衷和解釋在以前博文中有所闡述,此處不再重復。
這些代碼從公司的一個預研項目中抽出。根據中華人民共和國國務院2000年6月25日頒布的《鼓勵軟件產業和集成電路產業發展的若干政策》(18號文件)及2002年7月24日發布的《振興軟件產業行動綱要(2002年至2005年)》(47號文件)規定的由國家扶持的軟件產業風險投資公司和投資基金(至今尚未組建)的精神,以及“共享、共有、共富、共贏”的四項基本原則、“軟件還是開源好”的基本國策、“今天,你免費了沒?”的行規,代碼的package修改為了free.*;主要的類也一律Free***來命名,以此充分體現響應國家號召、遵守行業政策的精神。例如,FreeToolBar就是工具條,FreeProgressBar就是進度條,等等。大家可自行研究。
free包下的Shell.java是整個小框架的設計初衷:做一個現成的界面風格和布局,用XML來配置其內容(例如菜單、工具條、模塊欄、功能列表等等,具體XML見free目錄下的幾個xml示例文件)。所以可以直接運行這個類(有main函數),可以得到《Swing第一刀》中的示例。此外,運行FreeLoginUI.java即可得到《Swing第三刀》中的登錄界面,等等。
代碼很簡單,也很干凈,由于從公司項目抽出,很多注釋都被我去掉,以避免不必要的麻煩。相信以大家的聰明才智加上俺的規范命名,不會造成什么閱讀困難。不過關于代碼的使用還有以下注意事項,請大家注意:
1,代碼僅供參考和相互學習。現在軟件行業(甚至各行各業)抄襲成風、愈演愈烈,以至于某個公司每次說“我們的**數據庫**操作系統是完全國產、完全自主創新、完全的自主知識產權”,我們程序員就都會心的笑了。但是我還是不建議把這套代碼直接用在自己的項目上,尤其原封不動的照搬,總不是件好事。以后俺家的ERP和你家的ERP去同一個客戶那去競標,show出來一看:阿嬌和阿薩,撞衫而死,豈不尷尬!非要用,怎么也得修改一下圖片資源、簡單的顏色、字體風格吧,相似度降低到大S和小S就行了,聰明人更會弄的不露痕跡,所謂“去其糟粕、取其精華”嘛。相信大家會處理好。
2,關于JGoodies和TWaver。代碼中涉及到一些JGoodies和TWaver的使用和相關代碼,以前解釋過原因,這里再重申一下。JGoodies是一個免費的LnF,TWaver是一個商業的Swing組件庫(試用版本是可以免費用的有個水印而已)。兩個東東在這里都不是必須使用的。他們的存在僅僅是因為我們公司項目的具體需要,我也就沒有花很多時間去除他們的使用代碼。在《Swing第二小刀刀:星星之火可以燎原》一文里,xujunJ2EE同學已經成功的去除了這些第三方類庫的相關代碼并提供了源代碼,相信對大家會有所幫助。還是那句話:哥散的不是代碼,是思想;哥你看的也不是源碼,是火花。哈!
3,代碼的更新:這個框架會持續改進,代碼也會持續更新。不過由于這是一個公司內部項目,所以本人不能保證以后還能持續更新、改進和發布這批代碼;不過相關的技術思路都會在后續的文章中共享,相信大家也完全可以自己來實現代碼的改進。
4,歡迎大家一起學習和討論,共同進步,無論是玩Java Swing的,還是Web的,還是.NET的,還是Flex的。謾罵和攻擊總不是讓人很舒服的事,尤其在自己“未作惡”的情況下,就尤顯得委屈。況且,謾罵絕不是戰斗,反而有點懦弱和膽怯的表現,于我們的學習和進步毫無益處。本人尊重所有人、所有技術、所有流派、所有思想,并一向本著“不做作、不忽悠”的做人原則,也希望獲得大家的支持鼓勵和批評建議。
老規矩,下代碼依舊到TWaver中文社區里下載。