1. 程式人生 > >Java使背景圖片自適應窗體的辦法

Java使背景圖片自適應窗體的辦法

新增一個面板,窗體佈局設定為BorderLayout.center或者null都可以。在面板上進行重繪的時候,呼叫用 面板.getsize().getHeight和getWidth方法來設定背景圖片大小;只限製圖片的寬度或者高度時,將另一個引數設定為定值。

此時進行窗體拉伸,圖片會跟窗體一起等比例放大,不會出現窗體空白的情況。

程式碼示例

public void paint(Graphics g) {
		//準備一張緩衝背景圖片
		BufferedImage bi = (BufferedImage) this.createImage(this.getWidth(),this.getHeight());
		//獲取緩衝圖片畫筆
		Graphics g_buffer = bi.getGraphics();
		//將要繪製的內容,繪製到緩衝圖片上
		g_buffer.drawImage(background.image.getImage(), background.x, 0,10292,(int)this.getSize().getHeight(), null);
		g_buffer.drawImage(mario.image.getImage(), mario.x, (int)(this.getSize().getHeight() * 0.8),mario.width,mario.height, null);
		for(int i = 0;i < pipeList.size();i++){
			Pipe pipe = pipeList.get(i);
			g_buffer.drawImage(pipe.image.getImage(), pipe.x, pipe.y, pipe.width, pipe.height, null);
		}
		//將緩衝圖片繪製到窗體
		g.drawImage(bi, 0, 0, null);
	}

拉伸前


拉伸後


雖然在超級瑪麗這個遊戲中不太需要等比例放大……