Java 在JLabel HTML中使用BuffereImage?
我可以在JLabel的HTML中使用BuffereImage吗?或者我必须在本地保存并通过文件路径调用它吗?首先,您需要保存图像Java 在JLabel HTML中使用BuffereImage?,java,swing,jlabel,bufferedimage,Java,Swing,Jlabel,Bufferedimage,我可以在JLabel的HTML中使用BuffereImage吗?或者我必须在本地保存并通过文件路径调用它吗?首先,您需要保存图像 File tmp = File.create("buffer", ".png"); ImageIO.write(img, "png", tmp); 然后,您需要将文件的URL用作src属性到img标记 StringBuilder sb = new StringBuilder(128); sb.append("<html><img src='");
File tmp = File.create("buffer", ".png");
ImageIO.write(img, "png", tmp);
然后,您需要将文件的URL用作src
属性到img
标记
StringBuilder sb = new StringBuilder(128);
sb.append("<html><img src='");
sb.append(tmp.toURI().toURL());
sb.append("'></html>");
“JLabel的HTML”是什么意思?您可以在JLabel中使用HTML对其进行格式化。工具提示和许多包含文本的JC组件也是如此。为什么
JLabel
是否有一个图标
属性?为什么不简单地使用setIcon(newimageicon(bufferedImage))
?@ThomasNield,但OP想使用bufferedImage
,大概是作为img
标记的源…我猜是的,您必须将buffereImage
本地保存到磁盘,并将File#getURI#getURL
用于src
属性…谢谢。这个文件实际上是临时的,这意味着它存储在内存中,但从未保存过,并且会自动清理?不,它是临时保存到磁盘的,具体取决于平台,它将被放在“tmp”目录中。如果希望在JVM存在后删除该文件,则应在创建后添加tmp.deleteOnExit()
。
label.setText(sb.toString());
label.setToolTipText(sb.toString());