Java 如何更改JLabel的图标?

Java 如何更改JLabel的图标?,java,swing,Java,Swing,我有一个jlabel来显示生成的图像。但它只在第一次起作用。之后,jlabel的imageicon不会更改。可能是什么问题?您可能有两个JLabel实例。一个是类变量,一个是已添加到GUI的实例变量。问题是您的代码正在更新类变量 或者,如果不更新EDT上的图标,可能会出现问题 编辑:只需重新阅读问题。如果您谈论的是需要从文件重新加载的“生成的图像”,那么您需要删除缓存的图像。有两种方法可以做到这一点: // Using ImageIO String imageName = "timeLabe

我有一个jlabel来显示生成的图像。但它只在第一次起作用。之后,jlabel的imageicon不会更改。可能是什么问题?

您可能有两个JLabel实例。一个是类变量,一个是已添加到GUI的实例变量。问题是您的代码正在更新类变量

或者,如果不更新EDT上的图标,可能会出现问题

编辑:只需重新阅读问题。如果您谈论的是需要从文件重新加载的“生成的图像”,那么您需要删除缓存的图像。有两种方法可以做到这一点:

//  Using ImageIO

String imageName = "timeLabel.jpg";
imageLabel.setIcon( new ImageIcon(ImageIO.read( new File(imageName) ) ) );

//  Or you can flush the image

String imageName = "timeLabel.jpg";
ImageIcon icon = new ImageIcon(imageName);
icon.getImage().flush();
imageLabel.setIcon( icon );

如果您需要更多帮助,请发布您的

我支持这个答案,即有可能有两个单独的标签对象


另一种可能是,您有两个图标对象引用相同的图像,因此在标签上设置它似乎没有影响。

如果您有jlabel定义 JLabel标签=新的JLabel()

我指的是你用来显示图像的标签

在事件函数中,
把它拿出来

如果不看到代码就不可能知道问题出在哪里,如果我想用blob类型更新数据库中的图像怎么办