问候!
我一直在尝试使用JEditorPane
使用Java显示一些HTML。但我遇到了一个问题:它没有显示任何图像。
我有一个简单的JFrame
表单,上面有JButton
和JEditorPane
。 Button有这个点击处理程序:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
String s = jEditorPane1.getText();
if (jEditorPane1.getContentType() == "text/html")
jEditorPane1.setContentType("text/plain"); else
jEditorPane1.setContentType("text/html");
jEditorPane1.setText(s);
}
这会将纯文本“转换”为html,然后在单击时返回。这对于简单的html非常有效。但是,当我尝试显示一些图像(给出图像在.jar
我正在执行的目录内)时,我得到image not found
图片。当我将图像放入.jar
时,会发生同样的情况。
所以,问题是:如何解决这个问题?
还有一个问题:我可以在文件目录中加入一些HTML,包括我的(或新的).jar
,然后显示它们是从那个加载的吗?如果是这样,如何做到这一点?
答案 0 :(得分:1)
关于您的第一个问题:由于您直接将HTML文本提供给编辑器窗格,而没有要求从URL加载它,因此它不知道如何解析相对URL。
因此,您有两个解决方案:
对于第二个解决方案,您只需获取编辑器窗格使用的HTMLDocument实例,然后调用setBase()方法。
关于第二个问题,您当然可以在jar文件中放置HTML和图像,调用Class.getResource()以获取其中一个HTML文件的URL,并将URL提供给编辑器窗格:它将加载HTML并显示相对于加载的HTML文件的URL的图像。