将不同的defaultFont设置为JFrame

时间:2015-08-05 13:34:31

标签: java swing look-and-feel nimbus

我正在使用Nimbus的外观和感觉,我已经设置了这样的defaultFont。

NimbusLookAndFeel nimbus = new NimbusLookAndFeel();
nimbus.getDefaults().put("defaultFont", myFont);

完美无缺。但我有一个JFrame,它提出了一个JButton。我只是想使用不同的" defaultFont"用于JFrame和JFrame的所有组件。

但我怎么能这样做?

编辑:在我的JFrame中,我试图像这样覆盖defaultFont值。

UIDefaults jDefaults = new UIDefaults();
jDefaults.put("defaultFont", newFont);

this.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
this.putClientProperty("Nimbus.Overrides", jDefaults);

//SwingUtilities.updateComponentTreeUI(this); It doesn't work
System.Out.println(getFont()); // writting myFont instead of newFont

1 个答案:

答案 0 :(得分:0)

设置完字体后,你试试这个:

           for(Window window : JFrame.getWindows()) {
            SwingUtilities.updateComponentTreeUI(window);
        }