【问题标题】:How to change colour of jDesktopPane from properties如何从属性更改 jDesktopPane 的颜色
【发布时间】:2019-01-30 15:02:42
【问题描述】:

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

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

检查附加的快照链接也许你会更好地理解我想要什么。

框架蓝色:

属性集颜色:

【问题讨论】:

  • 我不完全了解您要更改 jdesktoppane 的哪个部分的颜色
  • I have tried changing the colour of the desktop pane - 在哪里?你的代码应该是这样的:JDesktopPane desktop = new JDesktop(); desktop.setBackground( Color.RED ); 首先让它工作,然后如果你想让它更动态,请使用 JColorChooser。如果您有问题,请发布您的minimal reproducible example 来证明问题,因为我们无法猜测您在做什么。不要使用 IDE 更改颜色。了解如何编写自己的代码来设置组件的属性,以便学习 Swing,而不是 IDE。
  • @Donatic 我对java有点陌生,所以我尽量不使用代码。我想要改变的部分是你可以在图片中看到的浅蓝色。我想将它设置为我在面板中使用的紫色。
  • @camirk 我对java有点陌生..所以我只知道基本代码。我需要在 28 日之前提交,所以我尽量不要使用太多代码。 “我已尝试更改桌面窗格的颜色” - 我的意思是我尝试了如上所示的属性。还有我应该怎么告诉你我选择的颜色没有出现?

标签: java swing colors jdesktoppane


【解决方案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();
        }
};

【讨论】:

  • ,我不知道 nimbus 或 L&F 是什么。我正在使用 Java Netbeans 8.2。你能告诉我如何在没有任何编码的情况下更改背景颜色吗? (比如通过它的属性。)
猜你喜欢
  • 2019-08-13
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多