我正在使用 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 标记之后转换换行符,而且看起来很愚蠢。