我有一个显示彩色文本的JTextPane。我使用以下代码来从JTextPane获取文本。
String temp = pane.getDocument().getText(0,pane.getDocument().getLength());
但是,当我尝试再次将临时变量内容设置为窗格时,
pane.select(0,pane.getDocument().getLength());
pane.replaceSelection(temp);
通过这种方式,我失去了颜色并得到白色文字。无论如何,我可以保持文本的颜色而不将内容复制到剪贴板。
请帮忙。
答案 0 :(得分:2)
实际上它取决于您使用的EditorKit。第一部分返回所选片段的文本(带有样式信息)。例如。在RTFEditorKit中,它将是文档片段的rtf内容。
第二部分不正确。替换选择无法正确处理内容。我想在RTFEditorKit的情况下,它将是在窗格中插入格式的所有文本。
我会用
pane.setText(temp);
代替。如果您需要插入样式片段,请使用kit.read(...)
通过调用中的temp
您可以尝试Kit作为默认RTFEditorKit的替代方案,看看会发生什么
更新:抱歉原始评论有点不对。代码应该是
pane.getEditorKit().read(
new StringReader(temp),
pane.getDocument(),
pane.getDocument().getLength())