虽然this answer用于从ImageIcons
的Jar文件加载图片,但我似乎无法为Swing HTML中引用的图片获取正确的路径。
当资源未捆绑到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>") );
秘密是什么?
答案 0 :(得分:15)
如果您没有尝试过,我会假设如果您在HTML代码中包含资源网址,HTML渲染器可以访问您的图片:
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>") );
答案 1 :(得分:9)
网址是秘密
试试这个伙伴:
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的图标,如果您想这样做的话!
答案 2 :(得分:6)
答案 3 :(得分:0)
因为即使来自Sun的original demo在Swing中使用HTML也没有将图像嵌入到HTML中(用于生成带有图像图标的按钮),我怀疑甚至支持显示图像到位。我记得读者“某些HTML的有限子集”,但现在找不到引用。
编辑:请看安德鲁的评论和回答,它确实有效。