窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。如果直接调用这个方法后,的确设置了背景颜色,但看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane(),而JFrame上的contentPane默认是Color.WHITE的,所以,无论你对JFrame或者Frame怎么设置背景颜色,你看到的都只是contentPane.
解决方法:
办法A:在完成初始化,调用getContentPane()方法得到一个contentPane容器,然后将其设置为不可见,即setVisible(false)。
import javax.swing.*;
import java.awt.*
public class TestMenuBar1 {
public static void main(String arg[]) {
createNewMenu ck=new createNewMenu("第一个窗口");
}
}
class createNewMenu extends JFrame{
public createNewMenu(String title) {
getContentPane().setVisible(false);
setBackground(Color.blue); //设置窗口背景颜色
setTitle(title);
setBounds(200,200,500,500); //设置窗口位置和大小
setVisible(true); //设置窗口可见
}
}
办法B:直接加 this.getContentPane().setBackground(Color.blue);
import java.awt.*;
import javax.swing.*;
public class TestMenuBar1 {
public static void main(String arg[]) {
createNewMenu ck=new createNewMenu("第一个窗口");
}
}
class createNewMenu extends JFrame{
public createNewMenu(String title) {
setTitle(title);
setBounds(200,200,500,500);
setVisible(true);
this.getContentPane().setBackground(Color.blue);
}
}