【java】GUI窗口设置颜色失败

问题遇到的现象和发生背景

使用GUI创建窗口

问题相关代码,请勿粘贴截图
import javax.swing.JFrame;

public class Guitext {

    public static void main(String[] args) {

        JFrame a=new JFrame("我的第一个界面");//创建界面对象,传入标题
        //设置标题 a.setTitle("标题");
        a.setBounds(50,50,500,500);//设置窗口信息,前两个为为弹出位置,后两个为窗口大小
        //自定义 a.pack();
        //设置弹出位置 a.setLocation(50,50); 设置窗口大小 a.setSize(100,100);
        a.setBackground(Color.RED);//设置窗口背景颜色
        //a.setBackground(new Color(104, 243, 22));//设置窗口背景颜色
        //设置失败
        a.setVisible(true);//设置可见性
    }

}


运行结果及报错内容

窗口为默认颜色

我的解答思路和尝试过的方法

使用两个方法设置窗口背景颜色,都没有用,窗口还是默认的白色
a.setBackground(Color.RED);//设置窗口背景颜色
a.setBackground(new Color(104, 243, 22));//设置窗口背景颜色

我想要达到的结果

设置窗口背景颜色

题目内容里面就是全部代码,添加一个JPanel面板即可解决
具体解决方法如下
java中如何对JFrame进行设置背景颜色和背景图片
窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。
其实,在你直接调用这个方法后,你的确设置了背景颜色,
而你看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane().
而JFrame上的contentPane默认是Color.WHITE的,
所以,无论你对JFrame或者Frame怎么设置背景颜色,你看到的都只是contentPane.
方法A:在完成初始化,调用getContentPane()方法得到一个contentPane容器,然后将其设置为不可见,即setVisible(false)。
核心代码this.getContentPane().setVisible(false);//得到contentPane容器,设置为不可见
方法B:将contentPane的颜色设置为你想要的颜色,而不是对JFrame本身设置,
核心代码:this.getContentPane().setBackground(Color.red);//设置contentPane为红色
将核心代码替换方法A核心代码即可实现
方法C:为JFrame添加一个Panel或者JLabel等其他组件,设置其颜色为你想要的颜色,然后将其覆盖JFrame窗口即可
JFrame默认是BorderLayoutJPanel默认是FlowLayout。
————————————————
版权声明:本文为CSDN博主「Ryuka-fly」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xlh1991/article/details/16986555

就这么点代码?其他的呢