JtextPane
テキストを HTML として出力するシンプルなテキスト エディタを作成しています。スタイリング オプションには、太字、色、配置が含まれます。エディターを開いてテキストを入力すると、すべて正常に機能します。しかし、テキストを html でファイルに保存し、そのファイルを読み取ってエディターに戻すと、問題が発生します。太字のテキストを含むファイルを保存した場合 (テキストの<b>
周りにタグが付いているため)、ファイルを開き直して ( 経由でsetText
) エディターに挿入すると、テキストを「太字にする」ことができません。を介して太字/太字のテキストを処理する方法setCharacterAttributes
。対応するコードは次のようになります。
MutableAttributeSet attrs = pane.getInputAttributes();
StyleConstants.setBold(attrs, bold);
pane.getStyledDocument().setCharacterAttributes(p.getSelectionStart(),length,attrs,false);
この状況でテキストの太字を外して HTML を印刷すると、タグが削除されていないことがわかります。ただし、エディター自体には変更が反映されます。つまり、テキストは太字ではないように見えますが、html は変更されていないため、保存して再読み込みしても太字のままです。したがって、html を読み込んだ後にこの問題が発生する理由はわかりませんが、テキストを最初から編集しているときには問題は発生しません。何か案は?