无法更改 JFrame ContentPane 的背景颜色

Cannot change the background color of JFrame ContentPane

所以我在 java 中有一个 snake 程序,运行完美,但是在我的框架 class 中,我无法更改 JFrame 内容窗格的背景颜色,我使用getContentPane().setBackground(Color.DARK_GRAY); 但它不起作用,有什么帮助吗?

这是我的 Frame class:

package mainpackage;

import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JFrame;

public class Frame extends JFrame {

    private static final long serialVersionUID = 1L;

    public Frame() {

        getContentPane().setBackground(Color.BLACK); \NOT WORKING !!
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Snake by Sarp~");
        setResizable(false);
        init();
    }

    public void init() {
        setLayout(new GridLayout(1, 1, 0, 0));


        Screen s = new Screen();
        add(s);

        pack();

        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) {
        new Frame();
    }

}
setLayout(new GridLayout(1, 1, 0, 0));

使用上述布局管理器,您添加到框架的任何组件都将完全覆盖内容窗格。

Screen s = new Screen();
add(s);

您可以设置内容窗格的背景,然后向内容窗格添加一个组件。因此,您将在内容窗格顶部看到 Screen 组件的颜色。

将 Screen 对象的颜色设置为您想要的任何颜色:

s.setBackground( Color.BLACK );