Java 无法更新图像
这是我的应用程序:首先,我们必须上传一张图片,然后当我们点击搜索<应用程序上的code>JLabel将显示从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
新文件创建的图标(“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()