Java 带更新图像的JLabel刷新图标

Java 带更新图像的JLabel刷新图标,java,swing,refresh,jlabel,imageicon,Java,Swing,Refresh,Jlabel,Imageicon,我想做一个图像处理的实验。 基本上,我有一个由计时器不断更新的图像,并在JLabel中显示该图像 我的问题是JLabel不刷新图像 这是我的计时器代码: Timer timer = new Timer(200, new ActionListener() { public void actionPerformed(ActionEvent e) { count++; System.out.println("timer");

我想做一个图像处理的实验。 基本上,我有一个由计时器不断更新的图像,并在JLabel中显示该图像

我的问题是JLabel不刷新图像

这是我的计时器代码:

Timer timer = new Timer(200, new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            count++;

            System.out.println("timer");
            System.out.println(filename);

            ImageIcon icon = new ImageIcon(filename);

            label = new JLabel();
            label.setIcon(icon);
            label.setText(""+count);

            panel = new JPanel();
            panel.add(label);

            frame.getContentPane().removeAll();
            frame.getContentPane().add(panel);

            frame.repaint();
            frame.validate();

            try{
                FileWriter fstream;

                fstream = new FileWriter(filename,true);

                BufferedWriter out = new BufferedWriter(fstream);

                out.write("text to append");
                out.close();
            }catch (Exception ex){
                System.err.println("Error: " + ex.getMessage());
            }
        }
    });
其中filename是指向我的图像的路径

显示图像,但JLabel从不刷新我的图像。 我测试了我的代码,如果我在两个不同的图像之间切换,我会工作

编辑:

每次创建最后一个图像并用时间戳重命名时,我都通过复制来解决这个问题

label = new JLabel();
label.setIcon(icon);
label.setText(""+count);

panel = new JPanel();
panel.add(label);

frame.getContentPane().removeAll();
frame.getContentPane().add(panel);

frame.repaint();
frame.validate();
将所有这些替换为以下内容:

label.setIcon(icon);

如果此时标签不可见,则将其声明为外部类的类属性,或与
框架处于同一级别(在该代码段中显然可以访问)。

是否更改文件名变量或始终使用相同的变量?通过查看您提供的代码,我可以看出,文件名始终相同,因此它将绘制相同的图像。是的,文件名始终相同,但图像已更新…为了更快地获得更好的帮助,请发布一篇文章。我认为问题不在于图像没有更新,我很确定这是真的。虽然我认为“形象”并没有像你想象的那样被改变。BufferedWriter用于将文本写入文件,您可以通过调用write来执行此操作,但文件名是图像而不是文本文件。尝试注释掉您的Try语句,并将filename更改为refeer,以在方法中的最后一个不同的图像。这将确认问题是否在于图像的更新,而不是刷新,因为我在问题中编辑了一个文件,每次我都会创建一个带有时间戳的新文件。图像被正确更新,这是一个关于图像中单词的实验,所以我需要像写文本一样写图像。谢谢。如果这有助于解决问题,请告诉我。