【问题标题】:How to change the Font in the entire Swing UI application如何在整个 Swing UI 应用程序中更改字体
【发布时间】:2016-10-11 01:06:02
【问题描述】:

我做了一个摇摆申请。现在我想更改整个 Swing Application 的字体,以便添加的任何组件都应该只遵循该字体。 有没有办法达到同样的效果?

【问题讨论】:

    标签: java swing fonts


    【解决方案1】:
    public static void setGlobalFont( Font font ) {  
            Enumeration keys = UIManager.getDefaults().keys();  
            while (keys.hasMoreElements() ) {  
                Object key = keys.nextElement();  
                Object value = UIManager.get( key );  
                if ( value instanceof Font ) {  
                    UIManager.put( key, font );  
                }  
            }  
        }  
    

    【讨论】:

    • 是不是有点……蛮力?
    • +1 好吧,是的,这是正确的,并且在大多数情况下有效,但是对于某些 JComponents,需要使用 SwingUtilities.updateComponentTreeUI(myFrame/myDialog);
    • 不能改变上面的部分,以便[关节组件可以提供一些字体大小差异,比如我希望 JComboBox 项目具有相同的 UI 默认字体大小但 JTable 内容具有不同的 fontSize
    • @Abhishek:现在您发现了假设“一个Font 适合所有人”的陷阱。 ;) 看那些UIManager的值,根据用途做出更好的选择,看当前PLAF的UIManager Defaults
    猜你喜欢
    • 2021-07-03
    • 2015-01-03
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多