0

我正在使用 Java Swing 制作在线国际象棋(客户端-服务器),我已经能够毫无问题地制作 chessTable 表格,但是在大厅里我正在展示用户的头像,问题是,用户可以通过服务器更改他的头像,但是当我调用setIcon新图像时,它不会刷新它。

解释:

用户从服务器下载的默认图像(Avatar.jpg)开始,如果他改变它,服务器将他选择的新图像发送给客户端,与前一个图像的名称相同,因此它被替换。但是当我调用setIcon这个新图像时(下载后),它不会做任何事情,并且标签棒会显示他设置的第一张图像。我正在检查文件夹,并且图像正在从服务器发送到客户端没有问题,让客户端刷新头像的唯一方法是关闭和打开应用程序。有什么想法吗?,我尝试重新打印我能找到的所有随机内容,但仍然没有解决方案,并且标签由 clickedListener 刷新。我使用这条线来设置图像:

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

Edit1:我没有使用 a JApplet,但我仍然不知道问题可能出在哪里,因为我能够将标签图标更改为任何图像,但是当我尝试将图标更改为头像时,它即使在文件夹中您可以看到 Avatar.jpg 不一样,它仍然显示以前的,它已更改为新的。

Edit2:好吧,我仍然没有找到任何解决方案,我想可能是真的,因为我设置了一次图标,当程序重新访问它进入缓存的相同图像时,图像被保存在缓存中再次检查文件的来源。不确定,但这是我能做的唯一逻辑。

4

1 回答 1

1

尝试这个,

图片 img = ImageIO.read(new URL("http:\Server_IP:Port\image.jpg"));

setIconImage(img);

于 2012-05-13T20:12:21.333 回答