1

问候!

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

我有一个简单的JFrame表格,上面有JButtonJEditorPane。按钮有这个点击处理程序:

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中,然后显示它们是从那个目录加载的吗?如果是这样,如何做到这一点?

4

1 回答 1

1

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

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

  1. 为您的图像使用绝对 URL
  2. 告诉 JEditorPane 它必须用来加载资源的基本 URL。

对于第二种解决方案,您只需获取编辑器窗格使用的 HTMLDocument 实例,并调用setBase()方法。

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

于 2011-02-03T14:31:23.427 回答