JavaFX HTMLEditor-使用绝对路径插入本地图像

JavaFX HTMLEditor-使用绝对路径插入本地图像,java,image,javafx,html-editor,Java,Image,Javafx,Html Editor,我正在JavaFX中调整HTMLEditor,我的目标是在HTMLEditor中插入本地图像。互联网上的图像没有问题,工作正常,但当我尝试插入带有绝对路径的本地图像时,它只显示了著名的X,他没有找到它 尝试了很多东西,我目前的想法如下代码所示: htmleditor.setHtmlText( "<img src='file://C:/hi.png'/>"); 这导致了下面的html代码,我认为这很好,我想要的结果是,但它没有呈现图像 <html dir="ltr">&l

我正在JavaFX中调整HTMLEditor,我的目标是在HTMLEditor中插入本地图像。互联网上的图像没有问题,工作正常,但当我尝试插入带有绝对路径的本地图像时,它只显示了著名的X,他没有找到它

尝试了很多东西,我目前的想法如下代码所示:

htmleditor.setHtmlText(
"<img src='file://C:/hi.png'/>");
这导致了下面的html代码,我认为这很好,我想要的结果是,但它没有呈现图像

<html dir="ltr"><head></head><body contenteditable="true">
<img src="file://C:/test.png"></body></html>
第二个想法我还生成了一张图片并保存在我的硬盘上,称为绝对路径文件,但这导致了与上面相同的问题,这里我希望路径是100%正确的

File file = new File(TextArea_imagePath.getText() + ".png");
ImageIO.write(img, "png", file);
htmleditor.setHtmlText("<img src=' " + file.getAbsolutePath() + "'/>");
希望有人能帮我,我猜这是个愚蠢的错误

p、 s:
无法在没有路径的情况下帮助我和处理的图像

您的URI不正确。在文件:方案的一部分之后,必须有一个斜杠或三个斜杠。你不能有两条斜线

以下各项有效:

以下内容无效:

这样做的原因是URI语法为方案后面的两个斜杠赋予了特殊的含义。发件人:

此通用URI语法由四个主要组件组成:

:/

因此,您可以完全省略//或指定一个空权限,正如上面的前两个示例所做的那样

两个斜杠表示下面的文本C:,是一个权限,即主机名,带有可选的用户、密码和端口号。显然C:不是一个有效的主机名,即使它是,文件URI中主机名的确切含义也没有很好的定义

你的第二个想法不会像现在这样奏效。文件名不会自动构成有效的URI。您需要将其转换为URI:

htmleditor.setHtmlText("<img src=' " + file.toURI() + "'/>");