【问题标题】:Change Font type and size for the whole JFrame?更改整个 JFrame 的字体类型和大小?
【发布时间】:2016-10-21 22:14:12
【问题描述】:

我正在开发 Java GUI 项目。我在基于摇摆的 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();
   } 

}

【问题讨论】:

    标签: java swing fonts jframe jpanel


    【解决方案1】:
    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:我刚刚从我的旧项目中复制了这个,我不确定我从哪里得到它。

    【讨论】:

    • 抱歉打扰了。我已经用代码更新了我的问题。我很困惑如何使用您刚刚建议的功能。我尝试将函数放在Test 类中并在Test() 构造函数中调用它。但是,它什么也没做。
    • 成功了。对不起,我把函数放在所有代码的末尾,就在可见的东西之前。但是,现在当我把它放在顶部时它就可以工作了。非常感谢!
    【解决方案2】:

    您可以将此Font 设置为UIManager,但对于每种类型的JComponents,因为它们每个都有自己的语法UIManager Defaultshere

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2011-08-26
      • 2016-06-01
      • 2015-05-30
      • 1970-01-01
      • 2012-07-22
      • 2017-08-30
      • 2019-12-16
      • 2011-06-14
      相关资源
      最近更新 更多