<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    何以解憂?唯有Java

    其實程序員也懂得浪漫!
    posts - 90, comments - 637, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
        今天用Swing 做了一個模仿QQ2009的登錄界面,用到了開源的Look&Feel (Substance),在使用的過程中遇到了一些問題,也學(xué)到了一些技巧。
    Substance (https://substance.dev.java.net)有很多的外觀可以選擇,而且都很漂亮,還提供了強(qiáng)大的API供開發(fā)者使用。Substance 現(xiàn)在已經(jīng)
    發(fā)展到5.2RC 版了,一開始我使用的是5.1版,但是在使用的過程中發(fā)現(xiàn)了一些bug,當(dāng)我使用Substance中提供的水印功能時,出現(xiàn)了許多的異常,這個bug在5.0的時候是沒有的,后來我又下載了最新的5.2RC版,這個問題在5.2版中已經(jīng)解決了。大家如果需要的話,可以點(diǎn) 點(diǎn)這里下載  。

    第一個問題:如何完整的使用Look&Feel?


    大家可能會問了,什么叫著完整的使用Look&Feel?這里先不急著說明,先讓大家看一副截圖;



    大家看看上面幅圖是否已經(jīng)用了Look&Feel?  答案是正確的,但是并不完整,因為他的標(biāo)題欄還沒有改變,完整的使用Look&Feel后的截圖如下:



    是不是覺得很不一樣了呢?對于Swing 的老手來說,這個是小菜一碟,但是對于新手來說就比較困難了,因為他們看到的使用look&feel的許多教程都是像
    這樣的:
      UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());
    或者這樣:
    try {
          UIManager.setLookAndFeel(
    "org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
        } 
    catch (Exception e) {
          System.out.println(
    "Substance Raven Graphite failed to initialize");
        }

    或者說是我自己太菜了吧。總之我在認(rèn)真學(xué)習(xí)Swing的外觀使用之前我是不知道該如何使標(biāo)題欄也改變的。
    要改變標(biāo)題欄其實只要一句話就夠了,就是在main方法中添加這么一句:
     JFrame.setDefaultLookAndFeelDecorated(true);
    如果想要讓JDialog也改變的話,還要再加上: JDilog.setDefaultLookAndFeelDecorated(true);

    下面是最終完成的界面,使用的是Substance中 OfficeBlue2007LookAndFeel



    第二個問題,如何給應(yīng)用程序添加水印或者說是背景?

    官方的文檔說的很少,也沒有具體的使用例子說明,后來下載了Substance的源碼來看才發(fā)現(xiàn)該如何使用。

    以下就是我參考官方源碼寫的在main方法中的一段核心代碼

    JFrame.setDefaultLookAndFeelDecorated(true);
    JDialog.setDefaultLookAndFeelDecorated(true);
    try {
                SubstanceImageWatermark watermark 
    = new SubstanceImageWatermark(LoginFrame.class.getResourceAsStream("/demo/001.jpg"));
                watermark.setKind(ImageWatermarkKind.SCREEN_CENTER_SCALE);
                SubstanceSkin skin 
    = new OfficeBlue2007Skin().withWatermark(watermark);   //初始化有水印的皮膚

              
     UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());
                SubstanceLookAndFeel.setSkin(skin);  //設(shè)置皮膚
               
            } 
    catch (UnsupportedLookAndFeelException ex) {
                Logger.getLogger(LoginFrame.
    class.getName()).log(Level.SEVERE, null, ex);
            }

    上面的代碼中有一句代碼的位置是不能變的,那就是 SubstanceLookAndFeel.setSkin(skin);
    它必須要在 UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel()); 這句的下面。
    否則你看不到水印的效果。下圖是有水印和沒水印的對比圖(左邊的是有水印的,右邊的是沒水印的):



    再貼一張官方的一張截圖:大家看看Swing寫的 Office2007 界面如何?



    評論

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-23 20:57 by Flyever,Zhang
    good

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-23 21:01 by BruceLeey
    非常好

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-23 23:04 by 黑蝙蝠
    真的很不錯~~~

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序[未登錄]  回復(fù)  更多評論   

    2009-05-23 23:48 by changedi
    用過,感覺好多的開源的swing ui外觀都不錯~~~~

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 01:01 by 003
    使用金典登陸窗口

    請問什么叫“金典”

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 06:46 by huliqing
    看起來確實很棒子

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 08:46 by 日月雨林@gmail.com
    @003
    不好意思,打字快了點(diǎn)寫程序的時候沒注意,謝謝你的提醒,應(yīng)該是“經(jīng)典” 才對。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 12:28 by BeanSoft
    不錯啊 話說界面開發(fā) Swing 的MVC模式還是很強(qiáng)的 ExtJS 基本上都是照搬它的設(shè)計思想

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 15:29 by 樂蜂
    看起來確實很棒

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-24 23:07 by 無量字幕
    很不錯。。。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-25 09:10 by 日月雨林@gmail.com
    @BeanSoft
    呵呵,最近很少看到BeanSoft老師在blogjava上發(fā)表文章哦。

    # 找不到皮膚  回復(fù)  更多評論   

    2009-05-25 22:23 by 梁晟
    我去網(wǎng)站下載了substance-all,打算山寨你的qq界面,可是這么找不到
    org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel
    這個類呢?
    望兄弟告知!

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-26 08:56 by 日月雨林@gmail.com
    @梁晟
    在包里面有啊,在src\org\jvnet\substance\skin 路徑下啊!你打算改他的源碼嗎?
    我用的是binary版的。源碼只是研究一下看看的。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-26 09:13 by FEI
    @梁晟
    這個類 org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel 是在 substance.jar 包里,需要下載 substance 5.2 library (https://substance.dev.java.net/files/documents/3294/127141/substance.jar)。

    # 麻煩你幫忙  回復(fù)  更多評論   

    2009-05-26 11:29 by 梁晟
    首先,謝謝你的回復(fù)!
    能不能,把你的java版本的qq的源代碼分享一下,按照你的做了,可是
    標(biāo)題欄還是沒有隨主題改變而改變。
    我的郵箱: lshsm@163.com

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-26 11:39 by 日月雨林@gmail.com
    @梁晟
    在main方法里添加
    JFrame.setDefaultLookAndFeelDecorated(true);
    JDialog.setDefaultLookAndFeelDecorated(true);
    這里兩行代碼就可以了!

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-26 17:10 by BeanSoft
    最近太忙了... 周末都沒什么空

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-05-27 22:46 by 龍華城
    能不能給個源碼研究研究 82055185@qq.com

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-06-03 01:25 by 淡茗
    請教樓主:用Substance 4 完全正常的代碼在 5 中出錯,是什么原因呢?能詳細(xì)講解下嗎?

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-06-05 15:22 by 游客
    給你個小提示 ,你的界面里面標(biāo)簽 就是帶有qq圖片的那個把它外層的容器邊框設(shè)為0像素,這樣的話你的那個圖片右側(cè)就不會顯示出一塊空白了

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-06-05 15:38 by 日月雨林@gmail.com
    @龍華城
    你用netbeans的設(shè)計器,你也可以做到的。源碼就不發(fā)了。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-06-05 15:40 by 日月雨林@gmail.com
    @淡茗
    substance 5.1里水印功能有bug ,我在博客里已經(jīng)說明了,你難道沒看到嗎? 用5.2 沒有問題了。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2009-06-05 15:40 by 日月雨林@gmail.com
    @游客
    謝謝你的提醒,我回去改改!呵呵!

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2010-06-01 17:44 by GreatGhoul
    很精彩的東西呀。

    # re: 用開源Look&Feel (Substance)寫 漂亮的Swing應(yīng)用程序  回復(fù)  更多評論   

    2012-07-19 21:28 by 爭一代雄風(fēng)
    很不錯!
    主站蜘蛛池模板: 在线a毛片免费视频观看| 免费播放特黄特色毛片| 亚洲av中文无码字幕色不卡 | 精品国产麻豆免费网站| 人成午夜免费大片在线观看| 人人狠狠综合久久亚洲88| 可以免费看黄的网站| 亚洲AV成人精品一区二区三区| 亚洲精品无码成人片久久| 性一交一乱一视频免费看| 成人片黄网站色大片免费观看APP| 97se亚洲国产综合自在线 | 亚洲人成人网毛片在线播放| 又粗又大又长又爽免费视频| 8090在线观看免费观看| 免费精品国产自产拍在线观看| 亚洲视频在线一区二区三区| 亚洲av无码成人精品区| 麻豆最新国产剧情AV原创免费| 国产又黄又爽又大的免费视频 | 国产成人yy免费视频| 一出一进一爽一粗一大视频免费的| 亚洲精品在线不卡| 中文字幕亚洲激情| 在线永久免费观看黄网站| 精品久久8x国产免费观看| 久久www免费人成看国产片| 亚洲人成色777777精品| 2022年亚洲午夜一区二区福利 | 在线a亚洲老鸭窝天堂av高清| 亚洲av永久无码制服河南实里| 国产男女猛烈无遮挡免费视频网站| 亚洲毛片免费视频| 三年片在线观看免费| 麻豆安全免费网址入口| 亚洲中文无码永久免费| 亚洲国产精品线观看不卡| 亚洲AV色香蕉一区二区| 狠狠综合久久综合88亚洲| 国产一区二区三区免费看| 女人被男人躁的女爽免费视频|