Как переопределить цвет фона для отключенной JPanel

В приложении Java Swing я использую внешний вид нимба. Я безуспешно пытаюсь переопределить цвет фона JPanel (включен или отключен).

Doc oracle, настройки Nimbus по умолчанию -> Панель поиска .задний план".

Я создаю 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 :'(

person Stéphane Millien    schedule 12.08.2018    source источник
comment
может попробовать Panel[Disabled].backgroundPainter?   -  person merlin    schedule 13.08.2018


Ответы (1)


Наконец-то я нашел свою ошибку.

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

Отсутствует «новый ColorUIResource». Это работает как шарм.

person Stéphane Millien    schedule 12.08.2018