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ù)在沒(méi)有可視化工具的前提下,依然不實(shí)用。曾今聽說(shuō)SUN將針對(duì)Nimbus主題推出一款可視化設(shè)計(jì)工具,也沒(méi)有了下文。

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

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

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

           

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

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

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

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

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

            如有喜歡者將甚感欣慰,不喜者也權(quán)當(dāng)技術(shù)交流,千萬(wàn)勿噴。你可將其無(wú)償用于測(cè)試、學(xué)習(xí)、甚至商業(yè)用途。但禁止在未經(jīng)授權(quán)的情況下用于商業(yè)用途等,還請(qǐng)尊重知識(shí)產(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è)想未來(lái)可針對(duì)各組件逐一編寫教學(xué)文章,但可以預(yù)見工作量也是不小,必竟個(gè)人業(yè)余時(shí)間有限,而且也不知道是否真有人需要,所以此事暫且放一邊,也希望有興趣者協(xié)同開發(fā),從而為Swing LNF定制分享更多的經(jīng)驗(yàn),惠及后來(lái)者。

                 



          作者: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】【輕量級(jí)移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
          本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處(也可前往 我的52im.net 找到我)。

          Feedback

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

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

          支持!

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

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

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

          2012-09-20 16:50 by 亦非魚
          這套外觀 在windows系統(tǒng)中最大化的時(shí)候,會(huì)遮住 屏幕底部的taskbar,windowsXp 和 windows7 都是這樣,而且 frame的右下角不能拖拉放大,我的系統(tǒng)是 windows7 64位,也許是我自己系統(tǒng)的環(huán)境問(wèn)題?.我之前改過(guò)一個(gè)lookandfeel(簡(jiǎn)單的,個(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è)人猜測(cè):
          可以在 自己的寫的Titlepane 里面處理window 事件時(shí),做修改,非專業(yè)開發(fā),僅是個(gè)人猜測(cè)...

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

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

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

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

          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ù)  更多評(píng)論   

          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ù)  更多評(píng)論   

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

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

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

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


          網(wǎng)站導(dǎo)航:
           
          Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
          主站蜘蛛池模板: 泰顺县| 古丈县| 水富县| 临邑县| 象州县| 舒城县| 霞浦县| 德保县| 乐亭县| 巴南区| 平度市| 南宁市| 丰宁| 霍州市| 原平市| 衢州市| 扬中市| 泗阳县| 阜康市| 镇安县| 瓮安县| 平舆县| 宝丰县| 张北县| 纳雍县| 中牟县| 酉阳| 神农架林区| 卓资县| 崇州市| 五大连池市| 印江| 新建县| 清镇市| 湟源县| 隆化县| 巴彦淖尔市| 湘潭县| 新干县| 利川市| 吉安县|