成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

代碼分享:Swing外觀 抗鋸齒 字體設置

開發 后端
這個是一個界面顯示效果的處理,Swing中文顯示一直都是不怎么美觀,經過修改,比默認的好看多了。下文提供代碼。

 [圖片]  默認

 [圖片]  使用Nimbus

[圖片]  使用Nimbus并開啟抗鋸齒

 

 [圖片]  使用Nimbus,開啟抗鋸齒并使用自選字體

代碼片段:

  1. package canghailan.ui;  
  2.  
  3. import javax.swing.*;  
  4. import javax.swing.plaf.FontUIResource;  
  5. import java.awt.*;  
  6. import java.util.HashMap;  
  7. import java.util.Map;  
  8.  
  9. /**  
  10.  * @author canghailan  
  11.  * @datetime 2011-12-19 11:13  
  12.  */ 
  13. public class UIs {  
  14.  
  15.     private static final String FALLBACK_FONT_FAMILY_NAME = Font.SANS_SERIF;  
  16.     private static final Map<String, String> FONT_FAMILY_NAMES = new HashMap<>();  
  17.     private static final String[] BEST_FONT_FAMILIES = {  
  18.             "微軟雅黑""arial""sans-serif" 
  19.     };  
  20.     private static final int BEST_FONT_SIZE = 12// 12px  
  21.  
  22.     static {  
  23.         GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();  
  24.         String[] fontFamilyNames = env.getAvailableFontFamilyNames();  
  25.         for (String fontFamilyName : fontFamilyNames) {  
  26.             FONT_FAMILY_NAMES.put(fontFamilyName.toLowerCase(), fontFamilyName);  
  27.         }  
  28.         if (!FONT_FAMILY_NAMES.containsKey("serif")) {  
  29.             FONT_FAMILY_NAMES.put("serif", Font.SERIF);  
  30.         }  
  31.         if (!FONT_FAMILY_NAMES.containsKey("sans-serif")) {  
  32.             FONT_FAMILY_NAMES.put("sans-serif", Font.SANS_SERIF);  
  33.         }  
  34.     }  
  35.  
  36.     public static void enableAntiAliasing() {  
  37.         System.setProperty("awt.useSystemAAFontSettings""on");  
  38.         System.setProperty("swing.aatext""true");  
  39.     }  
  40.  
  41.     public static String getLookAndFeel() {  
  42.         try {  
  43.             for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {  
  44.                 if ("Nimbus".equals(info.getName())) {  
  45.                     return info.getClassName();  
  46.                 }  
  47.             }  
  48.         } catch (Exception ignore) {  
  49.         }  
  50.         return UIManager.getCrossPlatformLookAndFeelClassName();  
  51.     }  
  52.  
  53.     public static String getFontFamily(String[] fontFamilies) {  
  54.         for (String fontFamily : fontFamilies) {  
  55.             fontFamily = fontFamily.toLowerCase();  
  56.             if (FONT_FAMILY_NAMES.containsKey(fontFamily)) {  
  57.                 return FONT_FAMILY_NAMES.get(fontFamily);  
  58.             }  
  59.         }  
  60.         return FALLBACK_FONT_FAMILY_NAME;  
  61.     }  
  62.  
  63.     public static String[] getBestFontFamilies() {  
  64.         return BEST_FONT_FAMILIES;  
  65.     }  
  66.  
  67.     public static int getBestFontSize() {  
  68.         return BEST_FONT_SIZE;  
  69.     }  
  70.  
  71.     /*########################################*/ 
  72.  
  73.     public static void setUI() {  
  74.         enableAntiAliasing();  
  75.         // set LookAndFeel  
  76.         try {  
  77.             UIManager.setLookAndFeel(getLookAndFeel());  
  78.         } catch (Exception ignore) {  
  79.         }  
  80.         // set DefaultFont  
  81.         String bestFontFamily = getFontFamily(getBestFontFamilies());  
  82.         for (Map.Entry<Object, Object> entry : UIManager.getDefaults().entrySet()) {  
  83.             if (entry.getValue() instanceof FontUIResource) {  
  84.                 FontUIResource fontUIRes = (FontUIResource) entry.getValue();  
  85.                 entry.setValue(new FontUIResource(  
  86.                         bestFontFamily,  
  87.                         fontUIRes.getStyle(),  
  88.                         getBestFontSize() > fontUIRes.getSize() ?  
  89.                                 getBestFontSize() : fontUIRes.getSize()  
  90.                 ));  
  91.             }  
  92.         }  
  93.     }  

最新版本:UIs.java

源碼下載:http://down.51cto.com/data/319345

原文鏈接:http://www.oschina.net/code/snippet_116768_7750

【編輯推薦】

  1. Jease 2.6發布 Java開源內容框架
  2. 一個Java程序員對2011年的回顧
  3. 用Java GUI編寫的畫板程序
  4. Java的動態綁定機制
  5. Java中帶復選框的樹的實現和應用

 

責任編輯:林師授 來源: 開源中國社區
相關推薦

2015-09-15 09:20:16

圖片變形抗鋸齒

2009-07-15 10:37:28

Swing外觀

2009-07-10 12:30:12

Swing組件

2009-07-10 15:18:48

Synth外觀Swing外觀

2009-06-04 15:52:25

Netbeans6.5字體無法抗鋸齒Ubuntu9.04

2018-08-06 16:31:36

NVIDIA光線抗鋸齒

2012-01-17 17:08:05

JavaSwing

2012-05-31 14:11:49

SwingSubstance異常

2009-07-14 14:03:56

Swing程序

2009-06-10 17:11:01

linux netbe反鋸齒處理

2010-04-26 16:36:31

DNS負載均衡設置

2009-06-10 20:24:17

netbeans my字體設置

2018-10-18 14:28:33

2009-07-15 09:24:30

Swing動態刷新

2021-08-07 07:59:20

Windows 11操作系統微軟

2009-07-17 16:49:18

lookandfeelSwing

2009-07-14 16:07:59

調用JavaFX代碼Swing程序

2009-07-14 16:02:04

SWT和Swing

2010-07-08 13:32:17

UDPClient

2009-06-15 16:32:00

NetBeans字體設置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 香蕉国产在线视频 | 国产精品视频999 | 午夜精品一区二区三区在线视频 | 欧美精品在线观看 | 国产偷录叫床高潮录音 | 色综合色综合色综合 | 国产一区二区三区精品久久久 | 久久精品色欧美aⅴ一区二区 | 国产乱码久久久久久一区二区 | 久久er99热精品一区二区 | 亚洲欧美综合精品久久成人 | 青青草视频免费观看 | a在线免费观看 | 免费在线播放黄色 | 亚洲精品一 | 久久精品屋 | 久久成人一区 | 久久噜噜噜精品国产亚洲综合 | 国产色视频网站 | 亚洲精品久久久 | 99免费看| 精品综合 | 欧美影院 | 亚洲激情综合网 | 国产97视频在线观看 | 亚洲国产成人精品久久久国产成人一区 | 日韩三级在线观看 | 欧美日韩国产精品激情在线播放 | 日本一区二区不卡 | 最新国产在线 | 国产高清在线视频 | 国产精品欧美精品日韩精品 | 中文在线一区二区 | 日韩三级免费观看 | 超碰在线国产 | 国产日韩免费视频 | 久久综合一区 | 狠狠干天天干 | 欧洲一级毛片 | 国产成人精品久久 | 中文字幕在线一区 |