使用JFrame设置背景颜色无效及解决办法

1、在你使用JFrame创建窗体时的情况:

在你直接调用setBackground(Color.red)这个方法后,你的确设置了JFrame的背景颜色,而你看到的却不是直接的JFrame,而是JFrame.getContentPane()。而JFrame上的contentPane默认是Color.WHITE的,所以,无论你对JFrame怎么设置背景颜色,你看到的都只是contentPane.

最后,解决办法:

方法A:在完成初始化,调用getC ontentPane()方法得到一个contentPane容器,然后将其设置为不可见,即setVisible(false)。这样,你就可以看到JFrame的庐山真面貌啦!核心代码:this.getContentPane().setVisible(false)

方法B:将contentPane的颜色设置为你想要的颜色,而不是对JFrame本身设置,核心代码:this.getContentPane().setBackground(Color.red);

方法C:为JFrame添加一个Panel或者JLabel等其他组件,设置其颜色为你想要的颜色,然后将其覆盖JFrame窗口即可。

2、在使用Frame创建窗体时的情况:

可以直接使用this.setBackground(Color.red)来对窗体进行设置。

你可能感兴趣的:(java,swing)