css/html テーブルを jtextpane に「追加」しようとしています。
私がするとき:次のようなsetText :
jtextpane.setText(css)
望ましい結果が得られます [完璧!]:
しかし、次のようにjtextpaneにテキストを追加しようとすると:
int len = jtextpane.getDocument().getLength();
jtextpane.setCaretPosition(len);
jtextpane.replaceSelection(css);
次のように埋め込まれたhtmlコードを取得します。
Q: テーブルの結果 (コードではない) を jtextPane に追加する方法を教えてください。私はreplaceSelectionで何か間違ったことをしていると思いますか?! 前もって感謝します
編集 - 追加情報:
- すべてのテキスト情報を jtextpane に追加するには、次の静的メソッドを使用しています。
public static void appendToPane(JTextPane jtextpane, String userText, Color color) { StyleContext sc = StyleContext.getDefaultStyleContext(); AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, color); aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Myriad Pro"); aset = sc.addAttribute(aset, StyleConstants.FontSize, 20); int len = jtextpane.getDocument().getLength(); jtextpane.setCaretPosition(len); jtextpane.setCharacterAttributes(aset, false); jtextpane.replaceSelection(userText); }
私が持っているjtextpaneのインスタンス化について:
jtextpane.setContentType("テキスト/html");
元の css 文字列は次のとおりです。
table.imagetable { font-family: verdana,arial,sans-serif; フォントサイズ:11px; 色:#333333; ボーダー幅: 1px; 境界線の色: #999999; ボーダー崩壊:崩壊; } table.imagetable th { background:#b5cfd2 url('cell-blue.jpg'); ボーダー幅: 1px; パディング: 8px; 境界線のスタイル: 無地; 境界線の色: #999999; } table.imagetable td { background:#dcddc0 url('cell-grey.jpg'); ボーダー幅: 1px; パディング: 8px; 境界線のスタイル: 無地; 境界線の色: #999999; }