Picses' sky

Picses' sky
posts - 43, comments - 29, trackbacks - 0, articles - 24

Swing技巧. 设置全局字体[zz]

Posted on 2007-07-23 08:16 Matthew Chen 阅读(1008) 评论(0)  编辑  收藏 所属分类: Java SE

Swing技巧. 设置全局字体

Swing技巧. 设置全局字体(sun jdk)

为什么要这么做?

   因为java默认的字体显示中文都很难看

   因为比如jgoodies这样的skin默认不支持中文

   因为jdk1.4中文字体mapping有严重bug,用过IDEA的人都知道

   因为大家只有sun的jdk可用,ibm的,bea的都不适合跑client

if you are smart....
//设置全局字体
public static void initGlobalFontSetting(Font fnt){
    FontUIResource fontRes 
= new FontUIResource(fnt);
    
for(Enumeration keys = UIManager.getDefaults().keys(); keys.hasMoreElements();){
        Object key 
= keys.nextElement();
        Object value 
= UIManager.get(key);
        
if(value instanceof FontUIResource)
            UIManager.put(key, fontRes);
    }
}
if you aren't...

Font font = new Font("Dialog",Font.PLAIN,12);
UIManager.put(
"ToolTip.font",font);
UIManager.put(
"Table.font",font);
UIManager.put(
"TableHeader.font",font); 
UIManager.put(
"TextField.font",font); 
UIManager.put(
"ComboBox.font",font); 
UIManager.put(
"TextField.font",font); 
UIManager.put(
"PasswordField.font",font); 
UIManager.put(
"TextArea.font",font); 
UIManager.put(
"TextPane.font",font); 
UIManager.put(
"EditorPane.font",font); 
UIManager.put(
"FormattedTextField.font",font); 
UIManager.put(
"Button.font",font); 
UIManager.put(
"CheckBox.font",font); 
UIManager.put(
"RadioButton.font",font); 
UIManager.put(
"ToggleButton.font",font); 
UIManager.put(
"ProgressBar.font",font); 
UIManager.put(
"DesktopIcon.font",font); 
UIManager.put(
"TitledBorder.font",font); 
UIManager.put(
"Label.font",font); 
UIManager.put(
"List.font",font); 
UIManager.put(
"TabbedPane.font",font); 
UIManager.put(
"MenuBar.font",font); 
UIManager.put(
"Menu.font",font); 
UIManager.put(
"MenuItem.font",font); 
UIManager.put(
"PopupMenu.font",font); 
UIManager.put(
"CheckBoxMenuItem.font",font); 
UIManager.put(
"RadioButtonMenuItem.font",font); 
UIManager.put(
"Spinner.font",font); 
UIManager.put(
"Tree.font",font); 
UIManager.put(
"ToolBar.font",font); 
UIManager.put(
"OptionPane.messageFont",font); 
UIManager.put(
"OptionPane.buttonFont",font); 

posted on 2005-07-20 17:33 tech.cap 阅读(2194) 评论(3)  编辑 收藏 引用 所属分类: javatips

Feedback

# re: Swing技巧. 设置全局字体 2005-07-20 20:12 dudu

建设不要这样直接贴代码, 交流思想才是重要的。  回复  更多评论   

# re: Swing技巧. 设置全局字体 2005-07-21 01:01 cap

ok, i see  回复  更多评论   

# re: Swing技巧. 设置全局字体 2005-12-24 18:24 cofbean

次方法的调用必须放在UIManager.setLookAndFeel(w);之后,因为具体的laf实现可能添加新的键值对。并且方法修改如下:

//设置全局字体
public static void initGlobalFontSetting(String font){

for(Enumeration keys = UIManager.getDefaults().keys(); keys.hasMoreElements();){

Object key = keys.nextElement();
Object value = UIManager.get(key);

if(value instanceof FontUIResource){
FontUIResource rs=(FontUIResource)value;
Font fontRes = new Font(font,rs.getStyle(),rs.getSize());
UIManager.put(key, new FontUIResource(fontRes));

}
}


只有注册用户登录后才能发表评论。


网站导航: