我有功能SetCover(),在JLabel中设置图标。这是功能:
public void SetCover(String URL)
{
ImageIcon image = new ImageIcon(URL);
lbl_cover.setIcon(null);
lbl_cover.setIcon(image);
lbl_cover.revalidate();
}
但代码不会改变图像。函数的值确实会改变,但图片不会改变。对于exaple:
SetCover("C:\Picture_1")
SetCover("C:\Picture_2")
图片总是'picture_1',但如果我先输入:
SetCover("C:\Picture_2")
SetCover("C:\Picture_1")
比图片要2,所以它不会改变。知道这是怎么来的吗?有什么帮助吗?
谢谢:)
答案 0 :(得分:1)
我想到了一些情景:
lbl_cover
并未指出您所感知的实际标签。答案 1 :(得分:0)
在更改之前,您无需将ImageIcon
设置为null
。通常,您应该通过EDT(事件调度线程)更新swing组件,但在设置ImageIcon
之后,请在repaint()
之前JLabel
revalidate()
尝试。{/ p>
另外,请确保ImageIcon
不为空;您的路径可能不存在。