java - Image.setIcon(Parameters) 不刷新标签

标签 java swing icons refresh set

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

说明:

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

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

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

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

最佳答案

试试这个,

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

setIconImage(img);

关于java - Image.setIcon(Parameters) 不刷新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569630/

相关文章:

java - 函数值总是乘以 2

java - 翻译层的设计

java - JDBC Advantage 数据库找不到表(驱动程序冲突?)

java - 简单的 java 作业帮助,需要 gui 帮助

Windows 2003 与 Windows 2008 中的 Java Web 应用程序性能

java - 令人惊讶的是,removeChangeListener(null) 不会抛出 NullPointerException

java swing GridBagLayout 空间左

javascript - 传单侧边栏 v2 : adding buttons & icons

android - 菜单中的android图标问题

android - 如何更改 onClick 高亮显示的形状?