gpt4 book ai didi

java - 为什么 JEditorPane 不显示用 HTML 编写的图像?

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:56 24 4
gpt4 key购买 nike

所以我的 HTML 是这样的。

<!DOCTYPE HTML>
<html>
<body >
<h1 style="background-color:lightblue">This is a h1</h1>
<img src="haha.jpg" alt="W3Schools.com" width="104" height="142" >
</p>
</body>
</html>

这是我加载 HTML 的方式:

JEditorPane je = new JEditorPane();
je.setEditable(false);
je.setContentType("text/html");
FileReader fr = new FileReader("testPage.html");
BufferedReader br = new BufferedReader(fr);
String text = "";
String inputLine = br.readLine();
while(inputLine!=null){
text += inputLine+"\n";
inputLine=br.readLine();
}
je.setText(text);
SwingNode sn = new SwingNode();
sn.setContent(je);

h1 部分工作正常,但图像部分未显示,该部分显示在 .html 文件中。所以我想知道是否有什么办法可以让HTML中的图像显示出来?如果 JEditorPane 无法做到这一点,还有什么其他组件会显示 html WITH 图像?

感谢帮助。

最佳答案

由于您使用的是 SwingNode,因此您的应用程序实际上使用了 JavaFX。

JavaFX 有一个 Web 浏览器组件,您可以在此处阅读有关它的更多信息:

Overview of the JavaFX WebView Component

这是一个如何使用它的简短示例:

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load(url);

url 可以是像 "http://example.com" 这样的地址,也可以指向一个文件或资源,例如:

Paths.get("testPage.html").toURI().toURL();

如果您将 HTML 内容作为 String,您可以像这样加载它:

String htmlContent = "<html>....</html>";
browser.getEngine().loadContent(htmlContent);

如果你想在htmlContent中插入图片,你可以这样做:

URL url = Main.class.getResource("haha.jpg"); // haha.jpg is next to Main class
String text = "<html><img src=\"" + url + "\" width=\"104\" height=\"142\" > </html>";

或者,如果您想插入指向计算机上固定文件的图像,请创建如下 url:

URL url = new File("C:/images/haha.jpg").toURI().toURL();

或者:

URL url = Paths.get("C:/images/haha.jpg").toUri().toURL();

关于java - 为什么 JEditorPane 不显示用 HTML 编写的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com