1. 程式人生 > >JFrame當中所設定的背景色無法顯示

JFrame當中所設定的背景色無法顯示

一下是我的一個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);//設定窗體為可見的
	}

}
執行結果:

實現對窗體背景顏色的修改。