Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java jLabel映像不更新_Java_Image_Netbeans_Jlabel - Fatal编程技术网

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读取文件;