在Nimbus L& F中设置全局JLabel文本颜色

时间:2013-09-19 06:47:04

标签: java swing jlabel nimbus

我目前正在开发一个GUI重的应用程序,一个使用JInternalFrame在JDesktopPane的一个实例中打开多个小窗口的应用程序,我正在尝试个性化Nimbus外观的外观。我可以很容易地改变主要和次要颜色,但是当我尝试更改单个组件时遇到了麻烦,当前的罪魁祸首是JLabel文本。

这是我用来设置LnF并自定义它的方法:

(如果我对代码块进行大量涌现,请提前道歉)

protected static void GUIStyle() throws Exception
{
    //Setting GUI styling

    UIManager.put("nimbusBase", new Color(255, 128, 0));
    UIManager.put("control", new Color(65, 105, 255));
    //UIManager.put("textForeground", Color.WHITE);
    try 
    {
            for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) 
            {
                if ("Nimbus".equals(info.getName())) 
                {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
    }
    catch (Exception e) 
    {
       UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
    }

    UIManager.getLookAndFeelDefaults().put("MenuItem[Enabled].textForeground", Color.WHITE);
    UIManager.getLookAndFeelDefaults().put("MenuBar:Menu[Enabled].textForeground", Color.WHITE);
}

现在,我正在尝试将应用程序中的每个JLabel上的文本设置为白色,但我似乎无法确定执行它的特定组件,即使使用this handy list.

添加 UIManager.getLookAndFeelDefaults().put("InternalFrame.foreground", Color.WHITE); 没用。

也没有 UIManager.getLookAndFeelDefaults().put("Label.foreground", Color.WHITE);

我很难过。这显然是可行的,因为我可以通过添加将所有文本更改为白色  在我设定外观之前UIManager.put("text", Color.WHITE);。但鉴于这种情况,我只需要JLabel文本为白色,而不是绝对每一段文本。

提前谢谢你。如果你能解释为什么我遇到这个问题(或者指出适当的资源解释原因),我很乐意看到它。我也遇到了与其他组件类似的问题,但是我希望如果我能够深入了解这个问题,我可以找出其他组件。

0 个答案:

没有答案