1. 程式人生 > >java中JFrame去掉邊框設定背景

java中JFrame去掉邊框設定背景

在這裡主要通過繼承JPanel來定義一個backgoundPanel類,將其新增到JFrame中,來給他設定背景,這樣做的好處是我們還可以在上面繼續新增其他元件,如下(BackgruondPanel):

public class BackgruondPanel extends JPanel{
	private ImageIcon pic;
	private Image image;
	private int width;
	private int height;
	
	public BackgruondPanel(String imgUrl) {
		pic = new ImageIcon(imgUrl);
		image = pic.getImage();
		width = pic.getIconWidth();
		height = pic.getIconHeight();
		this.setSize(width, height);
	}
	
	@Override
	public void paint(Graphics arg0) {
		super.paint(arg0);
		arg0.drawImage(image, 0, 0, width, height,null);
	}
	
	//獲取作為背景圖片的寬度
	public int getdefaultWidth(){
		return width;
	}
	//獲取作為背景圖片的高度
	public int getdefaultHeight(){
		return height;
	}
}
main類:
public class Main {
	public static void main(String[] args) {
		initView();
	}
	
	public static void initView(){
		String url = "img\\main_background.gif";		
		JFrame frame = new JFrame();
		BackgruondPanel bgpanel = new BackgruondPanel(url);		
		frame.add(bgpanel);			
		frame.setBounds(30, 30, bgpanel.getdefaultWidth(), bgpanel.getdefaultHeight());
		//設定去掉邊框
		frame.setUndecorated(true);
		frame.setVisible(true);  
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	}
}