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方法。


如果要设为背景的是gif动画图片则paintComponent方法要写为:

ImageIcon.paintIcon(panel, g, x, y);

只不过在加载了gif图片后再用jpg作为背景的话,paintComponent方法还是会被频繁调用不知道具体原因。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值