转自:http://blog.csdn.net/LoveVV99/archive/2005/10/20/510241.aspx
用Java写程序时,希望能够设置各个控件的字体,一个个地设定各个控件的字体非常麻烦,在网上找了很久终于找到了一次性设定所有组件字体的办法,写一个如下的函数,它会自动遍历各种控件并设定其字体属性:
public static void setUIFont(javax.swing.plaf.FontUIResource f)
{
java.util.Enumeration 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);
}
}
}
使用时在显示Frame之前调用该函数即可,参数是Font类的对象。
该方法也适用于程序不能正常显示中文,比如该出现中文的地方出现了方框的现象。
以上是转载的内容,结合自己的经验,说一下。
网上曾看到过说windows桌面在提高性能的桌面设置和普通性能的桌面设置时java laf所表现出来的gui的字体大小是不同的,不知是否以前的版本是如此,但java6中并不会呈现差异,实际是,但我们设置了Locale,系统生成的UIResource所作用于的那些默认组件即会呈现在本Locale下的字体默认大小,en是11,cn是12。