使用Java显示HTML

时间:2011-02-03 14:10:43

标签: java html image jar jeditorpane

问候!

我一直在尝试使用JEditorPane使用Java显示一些HTML。但我遇到了一个问题:它没有显示任何图像。

我有一个简单的JFrame表单,上面有JButtonJEditorPane。 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,然后显示它们是从那个加载的吗?如果是这样,如何做到这一点?

1 个答案:

答案 0 :(得分:1)

关于您的第一个问题:由于您直接将HTML文本提供给编辑器窗格,而没有要求从URL加载它,因此它不知道如何解析相对URL。

因此,您有两个解决方案:

  1. 使用图片的绝对网址
  2. 告诉JEditorPane必须使用的基本URL来加载资源。
  3. 对于第二个解决方案,您只需获取编辑器窗格使用的HTMLDocument实例,然后调用setBase()方法。

    关于第二个问题,您当然可以在jar文件中放置HTML和图像,调用Class.getResource()以获取其中一个HTML文件的URL,并将URL提供给编辑器窗格:它将加载HTML并显示相对于加载的HTML文件的URL的图像。