JTextPane を使用して HTML を編集しています。GUI コンポーネントに改行を入力し、JTextPane で getText() を呼び出すと、改行文字を含む文字列が取得されます。次に、新しい JTextPane を作成して同じテキストを渡すと、改行は無視されます。
改行が入力されたときに JTextPane が <br> タグを挿入しないのはなぜですか? これに対する適切な回避策はありますか?
JTextPane test = new JTextPane();
test.setPreferredSize(new Dimension(300, 300));
test.setContentType("text/html");
test.setText("Try entering some newline characters.");
JOptionPane.showMessageDialog(null, test);
String testText = test.getText();
System.out.println("Got text: " + testText);
// try again
test.setText(testText);
JOptionPane.showMessageDialog(null, test);
testText = test.getText();
System.out.println("Got text: " + testText);
出力例:
<html>
<head>
</head>
<body>
Try entering some newline characters.
What gives?
</body>
</html>
setText を呼び出す前に改行を HTML の改行に変換できることはわかっていますが、そうすると HTML タグと BODY タグの後の改行も変換されてしまい、ばかげているように思えます。