更改整个JFrame的字体类型和大小?

时间:2012-03-17 21:27:51

标签: java swing fonts jframe jpanel

我正在研究Java GUI项目。我在基于swing的GUI上有几个组件。我想更改所有组件的字体设置,而不是逐个更改每个组件的字体。

有没有办法在JFrame上更改JPanel上所有组件的字体类型和大小。

编辑:

这是我的代码的外观:

public class Test extends JFrame{
   public Test(){

     //all components are initialized here. (some buttons and text fields) and added to this
      this.setVisible(true);
   }

   public static void main(String []args){
     new Test();
   } 

}

2 个答案:

答案 0 :(得分:5)

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);
    }
}

// ...

try
{
    setUIFont(new javax.swing.plaf.FontUIResource("Tahoma",Font.PLAIN,12));
}
catch(Exception e){}
PS:我刚从我的旧项目中删除了这个,我不知道从哪里得到它。

答案 1 :(得分:4)

您可以将此Font设置为UIManager,但对于JComponents的每种类型,因为每个类型都有UIManager Defaultshere < / p>