Java 刷新或更新JLabel

Java 刷新或更新JLabel,java,jlabel,Java,Jlabel,我想开发一个程序,使用JLabels演示图像幻灯片。 每当我显示单个图像时,它都可以正常工作。我的问题是,当我在数组中加载图像路径时,它们不会显示在JLabel: 刷新或更新JLabel无效 这是我的代码,它显示了我发现错误的函数 private ActionListener action = new ActionListener(){ public void actionPerformed(ActionEvent ae){ if (count == imgNames.s

我想开发一个程序,使用
JLabel
s演示图像幻灯片。 每当我显示单个图像时,它都可以正常工作。我的问题是,当我在数组中加载图像路径时,它们不会显示在
JLabel
: 刷新或更新
JLabel
无效

这是我的代码,它显示了我发现错误的函数

private ActionListener action = new ActionListener(){
    public void actionPerformed(ActionEvent ae){
        if (count == imgNames.size()) {
            System.exit(0);
        }
        JLabel temp = new JLabel();
        temp.setIcon(new ImageIcon(imgNames.get(count)));
        picLabel = temp ;
        add(picLabel);
        System.out.println("Count "+ count);
        count++;
        revalidate();
        repaint();
    }
};
其中,
定时器
设置如下:

timer = new Timer(2000, action);
timer.start();

上述问题的答案已经解决。这很简单。使用ImageIcon[]作为数组,而不是获取字符串(文件名),然后将其提供给setIcon方法,因为这不会刷新或更新jLabel上的图像。。所以用这种方式比较好。
我不知道这个答案的原因。如果有人知道,请将其张贴出来,以便其他人和我对该主题有所帮助。

为什么要删除并添加标签,而不是简单地更改其图标?无论如何,如果您希望我们提供帮助,请发布一个完整的最小示例,我们可以使用它来重现问题。对于这个错误,非常抱歉--remove()!!