Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JLabel HTML中使用BuffereImage?_Java_Swing_Jlabel_Bufferedimage - Fatal编程技术网

Java 在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='");

我可以在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='");
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());