如何更改JLabel的图标?

Bet*_*own 12 java swing

我有一个jlabel来显示生成的图像.但它只是第一次有效.之后,jlabel的imageicon不会改变.可能是什么问题呢?

cam*_*ckr 23

很可能你有两个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 );
Run Code Online (Sandbox Code Playgroud)

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