fr.setBackground(Color.red);
这行重复了试试添加  import java.awt.Color;另外,最好不要把代码都写在main方法里
在外面写,然后在main中调用就行了

解决方案 »

  1.   

    因为你设置的是JFrame的背景色,但JFrame上面又有一层Container
    所以被Container挡住了。按照你的意思,应该设置Container的背景,如下:
    Container c = fr.getContentPane();
    c.setBackground( Color.red );
      

  2.   

    对了,jframe上的内容层才是你看到的,因为内容层一般就是一个jpanel,而jpanel又是透明的,如果你不设置他的背景色,他会直接显示jframe的颜色,所以你设置内容层的背景色就可以看到了,就像楼上说的
      

  3.   

    了解。
    因为你设置的是JFrame的背景色,但JFrame上面又有一层Container
    所以被Container挡住了。按照你的意思,应该设置Container的背景,如下:
    Container c = fr.getContentPane();
    c.setBackground( Color.red );
      

  4.   

    想看到效果在fr.setVisible(true);之前加上
    Container c = fr.getContentPane();
    c.setVisible(false);
    就可以看到你的红色背景了