Jack Jiang

          我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
          posts - 499, comments - 13, trackbacks - 0, articles - 1

          【前言】

            傳統(tǒng)意義上講,Swing外觀定制相當(dāng)困難。java1.5里發(fā)布的Synth技術(shù)在沒有可視化工具的前提下,依然不實(shí)用。曾今聽說SUN將針對Nimbus主題推出一款可視化設(shè)計(jì)工具,也沒有了下文。

            一個(gè)稍復(fù)雜點(diǎn)的平面效果,受限于技術(shù)實(shí)現(xiàn),Swing里也只能像網(wǎng)頁一樣——切圖拼合,但在Swing里這么做代價(jià)較大:需要精確切圖拼合、復(fù)雜的布局、未來定制很困難等等,顯然不實(shí)用。

            直到接觸Android應(yīng)用的UI改進(jìn),循著Android與標(biāo)準(zhǔn)java的淵源,認(rèn)為NinePatch技術(shù)移殖到Swing中有很大的可能,順利的話有可能完全兼容。最后,一切正如所料。

            接下來也就有了BeautyEye L&F這個(gè)項(xiàng)目的想法。

           

          【關(guān)于 BeautyEye L&F】

            前幾年,因?qū)wing的外觀定制有過幾次深入實(shí)踐,因而今年初有了利用NinePatch技術(shù)為Swing徹底改頭換面一次的想法。

            起先沒想完全開發(fā)一套LNF,因?yàn)槊髦ぷ髁亢艽螅òň幋a,更為困難的是美感與視覺效果的確定),原本只想在Windows LNF的基礎(chǔ)上深入改進(jìn),以便站在前人的肩膀上快速收工。因熟門熟路,定制起來非常順手,隨著改造的深入,完全定制一套LNF的條件自然成形。

            經(jīng)眾多基礎(chǔ)ui素材的積累和借鑒,以及效果精細(xì)調(diào)整,各組件外觀逐漸達(dá)到預(yù)想的效果,也就萌發(fā)了要將此項(xiàng)目分享于互聯(lián)上,供需要的人使用。

            過程中也難免存在些遺憾——有些更好的想法沒有付諸實(shí)施,原因在于LNF代碼的結(jié)構(gòu)很多時(shí)候并不像Swing本身一樣優(yōu)秀(更多時(shí)候是LNF創(chuàng)造者們有所保留,因?yàn)長NF代碼難保一勞永逸),且存在不少未公開API的調(diào)用,基于兼容性和未來維護(hù)難度的考慮,采取了中庸之道。

            如有喜歡者將甚感欣慰,不喜者也權(quán)當(dāng)技術(shù)交流,千萬勿噴。你可將其無償用于測試、學(xué)習(xí)、甚至商業(yè)用途。但禁止在未經(jīng)授權(quán)的情況下用于商業(yè)用途等,還請尊重知識產(chǎn)權(quán)。

            有興趣者可加【QQ群:259448663(已滿)、2群:217134536 】方便交流。

           

          【項(xiàng)目托管地址】

            地址:http://code.google.com/p/beautyeye/ ,內(nèi)有詳盡開發(fā)指南及演示程序截圖等。

           

          【效果預(yù)覽】

                Part 1/2

                  Part 2/2
           

          【題后話:關(guān)于編寫LNF定制系列文章的想法】

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

                 



          作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
          出處:http://www.52im.net/space-uid-1.html
          交流:歡迎加入即時(shí)通訊開發(fā)交流群 215891622
          討論:http://www.52im.net/
          Jack Jiang同時(shí)是【原創(chuàng)Java Swing外觀工程BeautyEye】【輕量級移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
          本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處(也可前往 我的52im.net 找到我)。

          Feedback

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2012-09-17 16:29 by chenfeicqq
          這個(gè)圖形界面牛逼啊~!

          支持!

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2012-09-18 06:57 by wsc0918
          版主不簡單阿,這界面了不得

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2012-09-20 16:50 by 亦非魚
          這套外觀 在windows系統(tǒng)中最大化的時(shí)候,會(huì)遮住 屏幕底部的taskbar,windowsXp 和 windows7 都是這樣,而且 frame的右下角不能拖拉放大,我的系統(tǒng)是 windows7 64位,也許是我自己系統(tǒng)的環(huán)境問題?.我之前改過一個(gè)lookandfeel(簡單的,個(gè)人能力有限) 類似這種 去掉taskbar的高度:
          GraphicsConfiguration gc = frame.getGraphicsConfiguration();
          Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(gc);
          Rectangle screenBounds = gc.getBounds();
          int x = Math.max(0, screenInsets.left);
          int y = Math.max(0, screenInsets.top);
          int w = screenBounds.width - (screenInsets.left + screenInsets.right);
          int h = screenBounds.height - (screenInsets.top + screenInsets.bottom);
          // Keep taskbar visible
          frame.setMaximizedBounds(new Rectangle(x, y, w, h));
          個(gè)人猜測:
          可以在 自己的寫的Titlepane 里面處理window 事件時(shí),做修改,非專業(yè)開發(fā),僅是個(gè)人猜測...

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布[未登錄]  回復(fù)  更多評論   

          2012-09-20 17:48 by Jack Jiang
          @亦非魚

          此問題是java保留了N年也沒有FIX的bug,我已納入優(yōu)化記錄,非常感謝。

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2012-09-21 16:42 by sun_java_studio@yahoo.com.cn(電玩)
          佩服,我也曾經(jīng)是swing的狂熱者

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2012-09-26 01:54 by 李莫愁
          算了,做桌面應(yīng)用開發(fā)的話還是用C++甚至VB等工具吧,畢竟java的強(qiáng)項(xiàng)不在這里。

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2013-02-20 15:48 by 南瑞路8號
          今天早上還在想,為什么swing就不能做的像Android的那么華麗麗效果,下午沒想到就搜索到了,學(xué)習(xí)了,很漂亮。

          # re: 【原創(chuàng)】符合當(dāng)前主流審美的原創(chuàng)Swing外觀 - BeautyEye L&F 正式發(fā)布  回復(fù)  更多評論   

          2014-12-10 17:27 by agirls
          下不了。嗚嗚~~~~~

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
          主站蜘蛛池模板: 金山区| 嘉鱼县| 巴青县| 揭东县| 津市市| 茂名市| 宜阳县| 武威市| 台前县| 海口市| 定兴县| 永城市| 四川省| 伊宁县| 莫力| 平遥县| 方山县| 柳河县| 余江县| 黑河市| 石柱| 临潭县| 留坝县| 大理市| 石林| 应用必备| 崇左市| 涞源县| 新龙县| 北票市| 华坪县| 吕梁市| 祁东县| 涞源县| 金门县| 镇远县| 汪清县| 浦城县| 当涂县| 万州区| 连州市|