java swing 替JPanel动态设置背景图片

java swing 为JPanel动态设置背景图片
动态设置JPanel背景图片

一直没怎么用过swing编程。最近自己做个小程序需要动态修改背景图片。找了很多地方始终没开窍。请教了twaver的高人,茅塞顿开。

1 重写paintComponent方法

public class Test{


private JFrame frame;
private URL url;

class MyJPanel extends JPanel{
@Override
protected void paintComponent(Graphics g){
	super.paintComponent(g);  
	icon = new ImageIcon(url);//[color=red]图片路径不能固定否则无法动态修改图片[/color]
	if(icon!= null){
		g.drawImage(icon.getImage(), 0, 0, null);
	}
} 
}
}


2 设置好Image变量供g.drawImage(icon.getImage(), 0, 0, null);使用
url  = getClass().getClassLoader().getResource("xxx.jpg");//xxx.jpg在class目录下
ImageIcon icon = new ImageIcon(url);
Image img = icon.getImage()


3 调用JPanel的repaint();方法。该方法调用后会调用paintComponent方法。