import java.awt.*;
public class MyFrame extends Frame {
    public void launch() {
        setSize(400,300);
        setBackground(Color.blue);
        setVisible(true);
    }
    public static void main(String [] args) {
        new MyFrame().launch();
    }
}上面的这个是没有问题的,但是在下面的这段程序中,只是将Frame改成了JFrame,那个setBackground()函数却没有发挥作用:import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame {
    public void launch() {
        setSize(400,300);
        setBackground(Color.blue);
        setVisible(true);
    }
    public static void main(String [] args) {
        new MyFrame().launch();
    }
}过往各路神仙,那位替我解答一二?

解决方案 »

  1.   

    JFrame是在父窗格之上,以JRootPane作为载体,简单的将,又在上面加了一层,自然就看不见下面的颜色了。
    可以设置:((JComponent)getContentPane()).setOpaque(false);//设置面板透明,可以看到颜色实际已经设置上了,只是被遮盖而已如果要设置JFrame的背景要调用:getContentPane().setBackGround(new Color(...));
      

  2.   

    把setBackground(Color.blue);改为:getContentPane().setBackground(Color.red);就可以了
      

  3.   

    一般来说,不要在JFRAME上作设置。要把JFRAME.getContentPane() 赋给一个JPANEL,然后再去设置这个JPanel。