【问题标题】:How to override background color for disabled JPanel如何覆盖禁用的 JPanel 的背景颜色
【发布时间】:2018-08-12 15:53:39
【问题描述】:

在 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 :'(

【问题讨论】:

  • 也许可以试试Panel[Disabled].backgroundPainter

标签: java swing jpanel nimbus


【解决方案1】:

终于,我发现了我的错误。

map.put("Panel.background", new ColorUIResource(Color.yellow));
map.put("Panel[Disabled].background", new ColorUIResource(Color.red));

缺少“新 ColorUIResource”。 这就像一个魅力。

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多