WebLookAndFeel亂碼問題解決方法

現象

swing寫界面時,覺得太醜,使用weblaf換了界面。但中文總是亂碼。

如果不使用weblaf,則是正常的。

原因

google了一把,並在項目主頁中查看了下。
swing默認字體中有中文。
而weblaf設置的默認字體中沒有中文。
系統找不到中文在字體中對的字符後,就顯示亂碼。
這是com.alee.laf.WebFonts的默認字體設置

    static {
        if (SystemUtils.isWindows()) {
            fonts.put("control", new FontUIResource("Tahoma", 0, 12));
            fonts.put("alert", new FontUIResource("Segoe UI", 0, 13));
            fonts.put("menu", new FontUIResource("Segoe UI", 0, 12));
            fonts.put("accelerator", new FontUIResource("Segoe UI", 0, 12));
            fonts.put("title", new FontUIResource("Segoe UI", 0, 14));
            fonts.put("text", new FontUIResource("Tahoma", 0, 12));
            fonts.put("tooltip", new FontUIResource("Segoe UI", 0, 12));
            else if(...
//...           
}

參見: Unicode support ?

解決方法

自己把weblaf中的字體設置下。
如下面代碼,設置爲隸書。就正常顯示中文。

                WebLookAndFeel.globalControlFont  = new FontUIResource("隸書",0, 12);
//              WebLookAndFeel.globalTooltipFont
//              WebLookAndFeel.globalAlertFont
//              WebLookAndFeel.globalMenuFont
//              WebLookAndFeel.globalAcceleratorFont
//              WebLookAndFeel.globalTitleFont
//              WebLookAndFeel.globalTextFont

                WebLookAndFeel.install ();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章