java jLabel映像不更新
我正在创建一个反馈标签,显示用户在文件对话框中选择的图片 选择图片文件时,标签将自动更新为用户单击的图像 第一次选择图片时效果良好,但是第二次选择另一张图片后,它仍然作为第一张图片 代码:java jLabel映像不更新,java,image,netbeans,jlabel,Java,Image,Netbeans,Jlabel,我正在创建一个反馈标签,显示用户在文件对话框中选择的图片 选择图片文件时,标签将自动更新为用户单击的图像 第一次选择图片时效果良好,但是第二次选择另一张图片后,它仍然作为第一张图片 代码: private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { //browse button FileDialog
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
//browse button
FileDialog fd = new FileDialog(this, "Choose a file", FileDialog.LOAD);
fd.setDirectory("C:\\");
fd.setFile("*.jpg"); // jpg files only
fd.setVisible(true);
String filename = fd.getFile();
if (filename == null) {
System.out.println("You cancelled the choice");
} else {
savePicture("temp"); // save it in temp.jpg. This overwrites any existing picture.
ImageIcon imgThisImg = null;
imgThisImg = new ImageIcon(absfilePath+ "/temp.jpg");
jLabel7.setIcon(null);
jLabel7.setIcon(imgThisImg);
jLabel7.revalidate();
jLabel7.repaint();
}
在调试过程中,savePicture()函数执行后,目录图片将被更新。因此,覆盖文件不是问题。文件被正确覆盖,为什么仍显示上一个图像?是否有缓存或我需要清除的内容
谢谢 使用ImageIO读取文件效果最好。可以使用以下行实现。
jLabel7.setIcon(新的JLabel(新的ImageIcon(ImageIO.read)(新文件(“C:\\Users\\Cameron Gillespie\\Documents\\NetBeansProjects\\OnlineCabsClient\\src\\images\\taxiBackground.png”))代码>
您正在获取标签,然后设置图标。创建新标签和图像图标。然后使用ImageIO读取文件。阅读图像并将其打印到标签上。好的,伙计们,我找到了答案。刷新图像图标所需要做的就是:imgThisImg.getImage().flush();BAMM完成或考虑使用IMAIIO读取文件;