【问题标题】:Problem With HTML display in JEditorPane javaJEdi​​torPane java中的HTML显示问题
【发布时间】:2011-05-07 15:11:36
【问题描述】:

我试图在 JEditorPane 中显示 html。最初类型设置为“text/html”。

当我使用 setPage(URL) 时,它可以正常工作并显示结果输出,但是如果我有一个包含 HTML 代码的字符串,并且我使用 setText(String) 在 JEditorPane 上显示结果,则不会显示任何内容我只看到白色空间。

当然,如果我将字符串中的内容复制到 notpad 中,将其保存为 .html,然后在浏览器中打开生成的文件,它会正确显示。真正的问题在于 JEditorPane 如何或如何处理字符串以显示其中的内容。 JEdi​​torPane 在 Jframe 内的 JscrollPane 内。我只使用了 setContentType("text/html") 和 setText(String) 方法来显示 html。

除了将生成的 html 代码写入文件并使用 SetPage(URL) 之外,还有什么方法可以解决这个问题?如果您需要,我可以发布 html 代码(但它非常大)。谢谢你的帮助。

【问题讨论】:

  • 对我来说很好。发布您的 SSCCE (sscce.org) 来展示问题。

标签: java html jeditorpane


【解决方案1】:

不知道为什么 setText 不起作用。但这里有一个解决方法。

试试这个网址。 (URL 中的整个文件)(当你在其中设置文本时,这是 Android 的 WebView 调用的内容)

data:text/html;charset=utf-8,%3C%21DOCTYPE%20html%3E%0D%0A%3Chtml%20lang%3D%22en%22%3E%0D%0A%3Chead%3E%3Ctitle%3EEmbedded%20Window%3C%2Ftitle%3E%3C%2Fhead%3E%0D%0A%3Cbody%3E%3Ch1%3E42%3C%2Fh1%3E%3C%2Fbody%3E%0A%3C%2Fhtml%3E%0A%0D%0A

它以data:text/html;charset=utf-8, 开头,后面是您的 HTML。

但是你必须对其进行编码.. 至少你必须将 % 替换为 %25 其余部分可能无需编码即可工作。

您也可以使用此代码在不调用文件的情况下嵌入图像

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC" />

您只需对图像进行 base64 编码,然后就可以将其直接粘贴进去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-14
    • 2011-06-06
    • 2011-08-20
    • 2012-07-29
    • 2012-03-14
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多