JLabel的刷新与更新后的图像图标(JLabel refresh icon with update

2019-09-17 00:51发布

我试图在图像处理的实验。 基本上我有不断将通过定时器更新的图像和I显示在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());
            }
        }
    });

其中,文件名是路径到我的形象。

图像显示,但从来没有的JLabel刷新自己的形象。 我测试了我的代码和工作,如果我两个不同的图像之间SWICH ...

编辑:

我通过重复每一个最后的形象创造并使用时间戳重命名及时解决。

Answer 1:

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);

如果标签在该点是不可见的,其声明为外部类中的一个属性,或在相同的水平frame (它是在该段明显访问)。



文章来源: JLabel refresh icon with updated image