Image.setIcon(Parameters)不刷新Label

时间:2012-05-13 05:55:07

标签: java swing icons refresh set

我正在使用Java Swing制作一个在线国际象棋(客户端 - 服务器),我已经能够毫无困难地制作出令人难以置信的国际象棋形式,但在大厅里,我正在展示用户的阿凡达,问题是,用户可以通过服务器更改他的头像,但是当我调用新图像的setIcon时,它不会刷新它。

说明:

用户从服务器开始使用默认图像(Avatar.jpg)下载,如果他更改了它,服务器会向客户端发送他选择的新图像,其名称与前一个图像相同,因此会被替换。但是,当我打电话给setIcon这个新图像时(下载后),它不会做任何事情而且标签会显示他设置的第一张图像。我正在检查文件夹,并且图像正在从服务器发送到客户端而没有问题,而我让客户端刷新Avatar的唯一方法是关闭并打开应用程序。任何想法?,我试图重新打印我发现的所有随机的东西仍然没有解决方案,并通过clickedListener刷新标签。 我用这一行来设置图像:

this.JLProfilePic.setIcon(new javax.swing.ImageIcon(getClass().getResource("/View/Images/avatar.jpg")));   

Edit1:我没有使用JApplet,我仍然不知道问题可能来自哪里,因为我能够将标签图标更改为任何图像,但是当我尝试时要将Icon更改为Avatar,它仍会显示前一个,即使在文件夹中你可以看到Avatar.jpg不一样,它也换了一个新的。

Edit2:我还没有找到任何解决方案,我可能是真的或不是,因为我setIcon一次,当程序重新访问相同的图像时,图像保存在缓存中缓存而不是再次检查文件的来源。不确定但是我能做的唯一逻辑。

1 个答案:

答案 0 :(得分:0)

试试这个,

图片img = ImageIO.read(新网址(“http:\ Server_IP:Port \ image.jpg”));

setIconImage(IMG);