2010-11-10 152 views
0

我试图在JEditorPane中显示html。最初,该类型设置为“text/html”。在JEditorPane中显示HTML的问题java

当我使用setPage(URL)时,它工作正常,结果输出显示,但如果我有一个包含HTML代码的字符串,我用setText(字符串)在JEditorPane上显示结果没有显示,我只看到白色空间。

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

有没有办法解决这个问题,而不是把产生的html代码写到一个文件并使用SetPage(URL)?如果你需要它,我可以发布html代码(但它相当大)。谢谢你的帮助。

+0

工作正常,我。发布你的SSCCE(http://sscce.org)来证明问题。 – camickr 2010-11-10 05:35:53

回答

0

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

试试这个URL。 (在URL中的整个文件)(这是当你在它的setText 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编码的图像,然后将其粘贴权。