如何覆盖禁用的JPanel的背景颜色

时间:2018-08-12 15:53:39

标签: java swing jpanel nimbus

在Java Swing应用程序中,我使用的是nimbus外观。 我尝试覆盖JPanel背景颜色(启用或禁用),但没有成功。

Doc oracle, Nimbus Defaults->搜索“ Panel.background”。

我这样实例化JPanel:

JPanel panel = new JPanel() {

        private static final long serialVersionUID = 1L;

        @Override
        public void updateUI() {

            if ("Nimbus".equals(UIManager.getLookAndFeel().getName())) {
                UIDefaults map = new UIDefaults();
                map.put("Panel.background", Color.yellow); // Works fine :)
                map.put("Panel.disabled", Color.red); // Don't work :'(
                putClientProperty("Nimbus.Overrides", map);
            }
            super.updateUI();
        }
    };

我也在尝试:

map.put("Panel[Disabled].background", Color.blue); // Don't work too :'(

1 个答案:

答案 0 :(得分:2)

最后,我发现了我的错误。

fromEnum

缺少“新的ColorUIResource”。 就像魅力一样。