Как изменить цвет jDesktopPane из свойств

Я создаю проект, который требует использования нескольких внутренних фреймов и соединяет его через панель рабочего стола.

Я попытался изменить цвет панели рабочего стола (из свойства-> фон), но когда я запускаю его, он по-прежнему тот синий цвет по умолчанию.

Проверьте прикрепленную ссылку на снимок, возможно, вы лучше поймете мой вопрос, чего я хочу.

РАМА СИНИЙ ЦВЕТ:

https://stackru.com/images/ff399968cb71fb34278a3bf71acd293830c89bbc.png

ЦВЕТ НЕДВИЖИМОСТИ:

https://stackru.com/images/ed2070be267daa72ed196c8fb384eb5516014d8a.png

1 ответ

Похоже, что вы используете Nimbus L&F? Цвет фона JDesktopPane и других компонентов обрабатывается L&F. Вы можете переопределить фон как таковой:

desktop = new JDesktopPane() {

        @Override
        public void updateUI() {
            if ("Nimbus".equals(UIManager.getLookAndFeel().getName())) {
                UIDefaults map = new UIDefaults();
                Painter<JComponent> painter = new Painter<JComponent>() {

                    @Override
                    public void paint(Graphics2D g, JComponent c, int w,
                            int h) {
                        g.setColor(Color.white); //background color
                        g.fillRect(0, 0, w, h);
                    }
                };
                map.put("DesktopPane[Enabled].backgroundPainter", painter);
                putClientProperty("Nimbus.Overrides", map);
            }
            super.updateUI();
        }
};
Другие вопросы по тегам