从 Jar 中为 Swing HTML 加载图像

2022-09-03 00:33:56

虽然这个答案适用于从Jar文件中加载图像,但我似乎无法获得在Swing HTML中引用的图像的正确路径。ImageIcons

当资源未捆绑到 jar 中时,这将在 Swing HTML 中显示一个图像:

new JLabel("<html><table cellpadding=0><tr><td><img src='file:icons/folder_link.png'></td></tr><tr><td>100</td></tr></table></html>") );

在 jar 内部,图像可以成功引用(并显示)到 :ImageIcon

Icon topIcon = new ImageIcon( getClass().getResource("icons/folder_link.png" ) );

但是,我尝试将该技术用于 Swing HTML 不起作用。getResource

String p = getClass().getResource("icons/folder_link.png" ).getPath();
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );

秘诀是什么?


答案 1

在没有实际尝试的情况下,我会假设HTML呈现器可以访问您的图像,如果您在HTML代码中包含资源URL:

String p = getClass().getResource("icons/folder_link.png" ).toString();
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );

答案 2

网址是秘密

试试这个伴侣:

URL p = getClass().getResource("icons/folder_link.png" );
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );

然后你也可以这样做:

Icon topIcon = new ImageIcon(p);

然后,如果您想这样做,请将此图标设置为JLabel的图标!