为什么我的JPanel背景颜色不会改变?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的JPanel背景颜色不会改变?相关的知识,希望对你有一定的参考价值。

我一直在尝试将我的JPanel的背景设置为黑色。我可以让我的JButton显示在面板中,但背景仍然不是我设置的黑色。我不确定我做错了什么。

我尝试将框架的背景和所有面板设置为背景颜色为黑色。我已经确定我已将所有内容设置为可见。我也尝试将setOpaque设置为true,这没有做任何事情,所以我删除了它。

这是我的框架类:

public class GUI extends JFrame{
    public static void main(String[] args) {
        GUI frame = new GUI();
    }

    GUI(){
        setLayout(new BorderLayout());
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(500,500);
        setTitle("Polygon Maker");
        DrawPane buttonPane = new DrawPane(false);
        add("North", buttonPane);
        DrawPane drawPane = new DrawPane(true);
        add("Center", drawPane);
        }
}

这是我的小组课程:

    DrawPane() {
        drawPane = false;
        setLayout(new FlowLayout());
        setBackground(Color.BLACK);
        setVisible(true);
    }

    DrawPane(boolean draw) {
        drawPane = draw;
        setLayout(new FlowLayout());
        setBackground(Color.BLACK);
        setVisible(true);
        if (!draw)
            buttonSetup();
        else {
            addMouseListener(new Drawing());
            current = new DrawPoly();

        }

    }

我期待得到一个空白的黑色框架,顶部有3个按钮,但我得到一个空白的白色框架,顶部有3个按钮。我试图避免这个问题,但现在它正在让我继续这样做,我不知道是什么导致背景不显示。

答案

您正在从Jframe扩展,因此您需要更改设置颜色的方式

setBackground(Color.BLACK);

这样

getContentPane().setBackground(Color.BLACK);

以上是关于为什么我的JPanel背景颜色不会改变?的主要内容,如果未能解决你的问题,请参考以下文章

菜单列表 - 文本区域的背景颜色在悬停时不会改变

绘制使用自己的 Painter 创建的 JPanel

点击时 UITableViewCells 不会改变颜色

如何设置 JLabel 的背景颜色?

如何设置 JLabel 的背景颜色?

状态栏图标颜色不会随主题而改变