2010-11-10 62 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編碼的圖像,然後將其粘貼權。