【问题标题】:How to change background color of jDesktopPane which is created usning tools in netbeans如何更改使用 netbeans 中的工具创建的 jDesktopPane 的背景颜色
【发布时间】:2014-05-16 21:00:36
【问题描述】:

通过取消 netbeans ide,我在 JFrame 中创建了一个 JDesktopPane。而且我无法更改 jdesktopPane 的颜色。我尽我所能。但是当我打开JFrame .. 里面的JDesktopPane 时,JFrame 是一些蓝色背景。

请帮我改一下JDesktopPane的背景

【问题讨论】:

  • 你想把它改成什么?只是一种颜色,还是一种背景设计?您还在使用 Nimbus 外观(GUI Builder 的默认设置)吗?
  • 颜色和背景...是的,我认为我正在使用默认的 GUI 构建器。如何检查它是否是 Nimbus?我刚刚安装了netbeans ide..这就是我所知道的

标签: java swing netbeans background-color jdesktoppane


【解决方案1】:

我假设您正在使用具有默认 Nimbus 外观的 GUI Builder(因为您说您已经尝试了所有方法,我假设您已经尝试了 setBackground)。外观具有背景设置。但是你有围绕它的选择。

  1. 你可以只画背景。您想查看at this answer 以了解如何编辑自动生成的代码。然后你可以在编辑代码时做到这一点。之后不要忘记点击
    ctrl+shift+I,以解决所有导入问题。我懒得写完全限定的名字。

    jDesktopPane1 = new javax.swing.JDesktopPane() {
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.BLACK);
            g.fillRect(0, 0, getWidth(), getHeight());
        }
    };
    

  2. 如果你想要一张图片,你可以画一张图片

    jDesktopPane1 = new javax.swing.JDesktopPane() {
        private Image image;
        {
            try {
                image = ImageIO.read(new URL("http://www.hdbackgroundspoint.com/wp-content/uploads/2013/12/16/345t34.jpeg"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
        }
    };
    

  3. 您还可以覆盖 Nimbus 默认值 DesktopPane[Enabled].backgroundPainter。见Nimbus Defaults here

    public static void main(String[] args) {
        try {
    
            for (UIManager.LookAndFeelInfo laf : UIManager
                    .getInstalledLookAndFeels()) {
                if ("Nimbus".equals(laf.getName())) {
                    UIManager.setLookAndFeel(laf.getClassName());
                    UIManager.getLookAndFeelDefaults().put(
                            "DesktopPane[Enabled].backgroundPainter",
                            new DesktopPainter());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JDesktopPaneDemo();
            }
        });
    }
    
    static class DesktopPainter implements Painter<JComponent> {
        private Image image;
    
        public DesktopPainter() {
            try {
                image = ImageIO.read(new URL("http://www.hdbackgroundspoint.com/wp-content/uploads/2013/09/hh.jpeg"));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        @Override
        public void paint(Graphics2D g, JComponent object, int width, int height) {
            g.drawImage(image, 0, 0, width, height, null);
        }
    }
    

【讨论】:

  • 谢谢先生.. 但我做不到。我是 java 和 netbeans 的新手。你能清楚地解释一下,如何编辑自动生成的代码吗?右键单击jDesktopPane,然后单击自定义代码...然后您需要我复制并粘贴您给我的代码号1吗?我确实喜欢。但程序没有启动..它显示错误“C:\Users\Ahamed\AppData\Local\NetBeans\Cache\7.3.1\executor-sn-ps\run.xml:48:”我该怎么办?请帮帮我
  • 错误是什么?您是否通过按 CTRL+SHIFT+I 解决了所有导入问题?
  • 没有..但是你能告诉我我应该把你给我的代码放在哪里吗?它在“自定义代码”中吗?还是在哪里?
  • 请检查这个快照图像.. i61.tinypic.com/fwlxm8.jpg 我就是这样做的。当我按确定时没有出现错误。但是当我运行程序时出现以下错误.. 见下图i61.tinypic.com/28gzi1g.png
  • 在显示默认代码的下拉菜单中,将其更改为自定义创建,然后更改那个代码。我不知道为什么你的图片中有两组jDesktopPane1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多