一下是我的一个Jframe窗体程序:
import java.awt.*;
import javax.swing.*;
import java.awt.color.*;
import javax.swing.JFrame;
public class JFrameDemo01 {
public static void main(String[] args) {
JFrame f=new JFrame("第一个swing窗体");//建立一个窗体实例化对象并对其起名字
//分别设置窗体的大小颜色和是否可见
f.setSize(230, 80);
f.setBackground(Color.BLUE);
f.setVisible(true);//设置窗体为可见的
}
}
程序运行之后的结果为:
可以发现没有任何背景颜色显示。
原因:JFrame当中会默认使用流式布局管理器(FlowLayout)将整个窗体进行覆盖操作,也就是说设置的颜色确实是存在的,只是被布局管理器给覆盖住了,所以无法看见。
解决:在JFrame当中添加一个面板容器,使得面板容器对窗体形成一个覆盖后,直接设置面板的背景颜色就可以达到相当于对窗体背景颜色进行设置的效果,然后将组建都添加到面板容器当中去。
代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.color.*;
import javax.swing.JFrame;
public class JFrameDemo01 {
public static void main(String[] args) {
JFrame f=new JFrame("第一个swing窗体");//建立一个窗体实例化对象并对其起名字
//分别设置窗体的大小颜色和是否可见
Container pane=f.getContentPane();//在窗体当中添加一个面板操作,并进行对象的上转型操作。使得窗体面板容器占满整个窗体容器
f.setSize(230, 80);
pane.setBackground(Color.BLUE);//直接对窗体面板当中的背景颜色进行设置就行
f.setVisible(true);//设置窗体为可见的
}
}
运行结果:
实现对窗体背景颜色的修改。