无法更改JFrame ContentPane的背景颜色

时间:2016-11-27 00:00:10

标签: java swing jframe awt contentpane

所以我在java中有一个蛇程序,效果很好,但是在我的Frame类中我不能改变JFrame内容窗格的背景颜色,我使用getContentPane().setBackground(Color.DARK_GRAY);但它没有用,有什么帮助吗?

这是我的Frame课程:

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

}

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

s.setBackground( Color.BLACK );