Java使背景圖片自適應窗體的辦法
阿新 • • 發佈:2018-12-26
新增一個面板,窗體佈局設定為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); }
拉伸前
拉伸後
雖然在超級瑪麗這個遊戲中不太需要等比例放大……