Java 无法更新图像

Java 无法更新图像,java,image,caching,Java,Image,Caching,这是我的应用程序:首先,我们必须上传一张图片,然后当我们点击搜索JLabel将显示从新文件创建的图标(“gabar/historjpg/sample.jpeg”) 单击重置按钮时,图像和sample.jpeg将被删除 但是当我上传下一张图片时,新的sample.jpg将再次创建并显示。但该应用程序仍然显示旧的sample.jpg,而不是新的,即使旧的sample.jpg已被删除 这是我的一些代码 histoQ.setIcon(new ImageIcon("gambar/HistoJPG/sam

这是我的应用程序:首先,我们必须上传一张图片,然后当我们点击搜索<应用程序上的code>JLabel将显示从
新文件创建的图标(“gabar/historjpg/sample.jpeg”)

单击重置按钮时,图像和
sample.jpeg
将被删除

但是当我上传下一张图片时,新的
sample.jpg
将再次创建并显示。但该应用程序仍然显示旧的
sample.jpg
,而不是新的,即使旧的
sample.jpg
已被删除

这是我的一些代码

 histoQ.setIcon(new ImageIcon("gambar/HistoJPG/sample.jpeg"));
以下是按钮重置操作:

breset.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        imgLabel.setIcon(new ImageIcon("src/image/blank.jpg"));
        File fildel = new File("gambar/HistoJPG/sample.jpeg");
        fildel.delete();
    }
}

验证文件是否已被删除<如果Java无法删除文件,代码>文件#删除将返回false。您还可以使用
文件#exists
检查文件是否仍然存在。您还引用了两个不同的(我假定)标签,
historq
imgLabel
,其中一个可能假定您引用了错误的标签。标签用于显示图像。。这不是问题所在。。要显示sample.jpg在histoQ标签上。。。我已经检查过了,当我们上传新图片时,删除可以正常工作,它会自动创建新的sample.jpg..应用程序创建了sample.jpg。。但histoQ中显示的图片仍然是旧图片,即使sample.jpg已更改为新图片。请帮帮我。
ImageIcon
(毫不奇怪)听起来像是缓存问题。我的想法是,当您要求Java再次读取图像时,它会查看文件名a说“哦,我已经加载了这个图像”,并返回缓存的像素数据。建议调用
ImageIcon#getImage#flush
刷新缓存数据,或者尝试使用
ImageIO
api谢谢。。现在可以用了。。使用flush()