设置Java应用程序的全局字体

时间:2011-04-28 20:07:25

标签: java swing fonts

我需要为我的应用程序设置默认字体。有没有办法做到这不依赖于LaF?

2 个答案:

答案 0 :(得分:5)

想出来:

致电: setUIFont (new javax.swing.plaf.FontUIResource(new Font("MS Mincho",Font.PLAIN, 12)));

private static void setUIFont(javax.swing.plaf.FontUIResource f)
{
    java.util.Enumeration<Object> keys = UIManager.getDefaults().keys();
    while (keys.hasMoreElements())
    {
        Object key = keys.nextElement();
        Object value = UIManager.get(key);
        if (value instanceof javax.swing.plaf.FontUIResource)
        {
            UIManager.put(key, f);
        }
    }
}

答案 1 :(得分:3)

更好地控制如何/替换哪些字体 - 以独立于LAF的方式,但可控制的每个laf - 看看JGoodies Looks项目

http://java.net/projects/looks

它允许在运行时交换整个FontSets(这是语义字体的集合,如控件,对话框,消息)。