如何从属性更改jDesktopPane的颜色

时间:2018-08-24 07:12:39

标签: java swing colors jdesktoppane

我正在创建一个需要使用多个内部框架的项目,并通过桌面窗格将其互连。

我尝试过更改桌面窗格的颜色(来自属性->背景),但是当我运行它时,它仍然是默认的蓝色。

检查附加的快照链接,也许您会更好地理解我的问题。

FRAME BLUE COLOUR:

https://i.stack.imgur.com/IzTNj.png

属性设置颜色:

https://i.stack.imgur.com/dVhoT.png

1 个答案:

答案 0 :(得分:0)

您似乎正在使用Nimbus L&F? L&F处理JDesktopPane和其他组件的背景颜色。您可以这样覆盖背景:

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();
        }
};