0

JEdi​​torPane に html を表示しようとしています。最初は、タイプは「text/html」に設定されています。

setPage(URL) を使用すると正常に動作し、結果の出力が表示されますが、HTML コードを含む文字列があり、setText(String) を使用して JEditorPane に結果を表示した場合、何も表示されず、空白のみが表示されます。

もちろん、文字列の内容をコピーして notpad に貼り付けた場合は、.html として保存し、結果のファイルをブラウザで開いて正しく表示しました。本当の問題は、JEditorPane が文字列をどのように、または何を処理して、その内容を表示するかにあります。JEdi​​torPane は、Jframe 内にある JscrollPane 内にあります。また、html 表示には setContentType( "text/html" ) および setText(String) メソッドのみを使用しました。

結果のhtmlコードをファイルに書き込み、SetPage(URL)を使用する以外に、これを回避する方法はありますか? 必要に応じて html コードを投稿できます (ただし、かなり大きいです)。ご協力いただきありがとうございます。

4

1 に答える 1

0

setText が機能しない理由がわかりません。しかし、ここに回避策があります。

この URL を試してください。(URL 内のファイル全体) (これは、Android の WebView が Text を設定したときに呼び出すものです)

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 でエンコードするだけで、すぐに貼り付けることができます。

于 2010-11-10T02:16:43.210 に答える