【前言】
傳統(tǒng)意義上講,Swing外觀定制相當(dāng)困難。java1.5里發(fā)布的Synth技術(shù)在沒有可視化工具的前提下,依然不實用。曾今聽說SUN將針對Nimbus主題推出一款可視化設(shè)計工具,也沒有了下文。
一個稍復(fù)雜點的平面效果,受限于技術(shù)實現(xiàn),Swing里也只能像網(wǎng)頁一樣——切圖拼合,但在Swing里這么做代價較大:需要精確切圖拼合、復(fù)雜的布局、未來定制很困難等等,顯然不實用。
直到接觸Android應(yīng)用的UI改進,循著Android與標(biāo)準(zhǔn)java的淵源,認(rèn)為NinePatch技術(shù)移殖到Swing中有很大的可能,順利的話有可能完全兼容。最后,一切正如所料。
接下來也就有了BeautyEye L&F這個項目的想法。
【關(guān)于 BeautyEye L&F】
前幾年,因?qū)wing的外觀定制有過幾次深入實踐,因而今年初有了利用NinePatch技術(shù)為Swing徹底改頭換面一次的想法。
起先沒想完全開發(fā)一套LNF,因為明知工作量很大(包括編碼,更為困難的是美感與視覺效果的確定),原本只想在Windows LNF的基礎(chǔ)上深入改進,以便站在前人的肩膀上快速收工。因熟門熟路,定制起來非常順手,隨著改造的深入,完全定制一套LNF的條件自然成形。
經(jīng)眾多基礎(chǔ)ui素材的積累和借鑒,以及效果精細(xì)調(diào)整,各組件外觀逐漸達到預(yù)想的效果,也就萌發(fā)了要將此項目分享于互聯(lián)上,供需要的人使用。
過程中也難免存在些遺憾——有些更好的想法沒有付諸實施,原因在于LNF代碼的結(jié)構(gòu)很多時候并不像Swing本身一樣優(yōu)秀(更多時候是LNF創(chuàng)造者們有所保留,因為LNF代碼難保一勞永逸),且存在不少未公開API的調(diào)用,基于兼容性和未來維護難度的考慮,采取了中庸之道。
如有喜歡者將甚感欣慰,不喜者也權(quán)當(dāng)技術(shù)交流,千萬勿噴。你可將其無償用于測試、學(xué)習(xí)、甚至商業(yè)用途。但禁止在未經(jīng)授權(quán)的情況下用于商業(yè)用途等,還請尊重知識產(chǎn)權(quán)。
有興趣者可加【QQ群:259448663(已滿)、2群:217134536 】方便交流。
【項目托管地址】
地址:http://code.google.com/p/beautyeye/ ,內(nèi)有詳盡開發(fā)指南及演示程序截圖等。
【效果預(yù)覽】
Part 1/2

Part 2/2

【題后話:關(guān)于編寫LNF定制系列文章的想法】
在該項目的目錄組織結(jié)構(gòu)上,不同組件都單獨開列,目的是設(shè)想未來可針對各組件逐一編寫教學(xué)文章,但可以預(yù)見工作量也是不小,必竟個人業(yè)余時間有限,而且也不知道是否真有人需要,所以此事暫且放一邊,也希望有興趣者協(xié)同開發(fā),從而為Swing LNF定制分享更多的經(jīng)驗,惠及后來者。
