不管你的項目是否用到了Swing技術,我都要說,Swing是一個設計優秀的Java包,它充滿了大師的智慧。如果你學了Java卻連一個Button還不會寫,就象你學習Visual Basic卻不會用Button,那可絕對是不能被原諒的。Swing技術的應用已經在國外大行其道,由於java的免費、易學以及大家對於java技術的充分信賴,好多公司早早的就把應用程序的一切,從後台服務到前台人機交互界面,統統移到了java開發上。Swing出現了快10年了,憑借其先進的設計思想,一直未曾落後於哪種語言的界面開發技術,使用和理解Swing的設計思想,對軟件開發者大有裨益。
Swing的設計是MVC的典范。雖然MVC的概念有點泛濫,可是真正能夠理解並熟練掌握、在設計和開發裡面自然流露的並不多見。記得用VC++開發程序時候,MFC向導也是生成Document和View兩個類,當時一直奇怪為什麼這麼繞圈子。再看Swing的設計,則到處充滿了MVC的痕跡。仔細研究Swing中事件監聽、Model-View分離、Renderer/Editor機制、可插拔的LookAndFeel等機制,簡直就是一門藝術,充滿了美感。而如果你非常痛恨這些設計並覺得他們怪異,很可能你是剛從VB或者Delphi轉過來,這些快速開發工具幫助了你也“害”了你。
Swing設計的不錯,不過可能過度學術化的設計也使得Swing跑起來並不靈巧,學習難度也大。這客觀上確實使得Swing一直沒有被廣泛使用,而且廣受诟病。記得以前“Swing有什麼成功的應用嗎?”之類的帖子一直是熱門話題。IBM等則趁機抓住小辮子弄了SWT吸引了不少人,使得Java GUI技術面臨分裂的危險。
不過隨著JAVA的不斷升級和優化,Swing的速度一直在提高,美觀性也在改善,基於Swing的成功應用也越來越多了。關於Swing是否消亡或被SWT代替或是否能作桌面應用的爭論逐漸少了。不過喜歡並精通Swing技術的開發者,尤其在國內,依舊非常少。
好在情況在轉好。Sun正意識到Eclipse和SWT所帶來的威脅,下了大力氣發展NetBeans,其最新版本對Swing GUI可視化設計的支持已經超過了所有對手,其Rich Client框架也走向成熟,這對Swing的發展和應用是一個很大的推動。隨著WEB熱潮的減退,人們又更多的開始理性的思考B/S和C/S架構的選擇,某些領域Swing技術已經成為首選的解決方案。隨著JGoodies、JIDE、TWaver等優秀Swing產品的不斷湧現,Swing會以更快速度在桌面應用中普及。