java - 无法更改 JFrame ContentPane 的背景颜色

标签 java swing jframe awt contentpane

所以我在java中有一个snake程序,工作完美,但是在我的Frame类中我无法更改我的JFrame内容 Pane 的背景颜色,我使用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();
    }

}

最佳答案

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

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

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

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

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

s.setBackground( Color.BLACK );

关于java - 无法更改 JFrame ContentPane 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40824426/

相关文章:

java - 使用 JFrame 时组件不显示

java - 显示时只有一小部分窗口可见。我如何展示整个事情?

java - LibGDX -> LWJGL 应用程序中的异常 - 无法转换为

java - 在迭代集合时从集合中删除对象

java - 如何在 JDialog 中访问所有者 JFrame 的方法

java - 在处理之前禁用框架

java - 添加 ShowcaseView 作为库项目

java - 创建客户端-服务器聊天程序

java - JDialog 在去图标化后失去不透明度

java - MigLayout 在窗口调整大小后根据百分比更新单元格大小