从罐子里为Swing HTML加载图片

时间:2011-06-16 14:31:33

标签: java html image swing

虽然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>") );

秘密是什么?

4 个答案:

答案 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的有限子集”,但现在找不到引用。

编辑:请看安德鲁的评论和回答,它确实有效。