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()!!