1. 程式人生 > >Java新增背景圖片,不遮蓋其他容器

Java新增背景圖片,不遮蓋其他容器

        寫了一個圖書管理系統,希望藉此熟悉Java的介面和資料庫操作,在製作介面時想要新增一個帶背景的容器,最開始在網上查的都是在JFLabel裡新增圖片,新增上了完全達不到想要的效果。

        後來學習到將圖片重繪到一個JPanel容器中,將這個圖片的容器加入到面板中,再向這個容器中新增其他元件。但是新增後發現在這個面板中新增容器的話是會把裝圖片的容器完全遮蓋住的。


        經過查詢資料,可以用JLayeredPane分層容器,可以實現新增多層容器而不會完全遮蓋下層容器。

       下面是程式碼:

public class FindMenu extends JFrame{
	private JLayeredPane layeredPane;
	public FindMenu() {
		setLayout(new GridLayout(1, 1));//將面板設定成網格佈局,只定義一行一列,使圖片充滿整個面板,並可以隨著面板的放大和縮小改變
		
		layeredPane = new JLayeredPane() {
			public void paintComponent(Graphics g) {//重寫繪製面板的方法
				super.paintComponent(g);
				ImageIcon image = new ImageIcon("src/find.png");//匯入圖片
				image.setImage(image.getImage().getScaledInstance(this.getWidth(), this.getHeight(), Image.SCALE_AREA_AVERAGING));//設定圖片大小跟隨面板大小
				g.drawImage(image.getImage(), 0, 0, this);//重新繪製面板
			}
		};
		
        //新增其他容器時,將其新增到不同的層,達到不遮蓋其他容器的目的
		//layeredPane.add(JPanel, new Integer(200));
		add(layeredPane);
	}
}