java--label.setIcon 第二次使用后无法显示

利用label显示点击按钮以后产生的二维码,但是只能显示第一次点击后的二维码,再次点击数字或字母按钮,二维码图片产生在文件夹但label里显示的图片还是第一次点击后产生的

界面是这个样子:
二维码显示的label定义为picture
图片说明

每个按钮的事件是这个样子:

 btnZ.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
               String frameno = text_frameno.getText();
                frameno += "Z";
                chkFrameno(frameno);
            }
        });

chkFrameno()里判断长度规则之后会进入drawBar()产生二维码:

 //产生二维码
    private void drawBar(String frameno) {          
        TwoDimensionCode handler = new TwoDimensionCode();
        handler.encoderQRCode(frameno, "./images/bar1.png", "png",2);
        ResizeImg.resize("./images/bar1.png", "bar1601.png", 160, 160);//图片缩放
        picture.setIcon(new ImageIcon(".\\images\\bar1601.png"));       
    }

请教一下这是什么问题?

既然第一次能产生,检查下第二次输出的图片是否存放到了指定的位置,是否在images下。

是否因为缓存? 可以这样:picture.setIcon(new ImageIcon(".\images\bar1601.png?t=new Date().getTime()"))

Image img = Toolkit.getDefaultToolkit().createImage(".\images\bar1601.png");
picture.setIcon(new ImageIcon(img));

后来用这样的方法创建image成功了,谢谢楼上