0

我试图在 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 代码(但它非常大)。谢谢你的帮助。

4

1 回答 1

0

不知道为什么 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

它以您的 HTML 开头,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编码,然后你就可以将它粘贴进去。

于 2010-11-10T02:16:43.210 回答