Jtextpane复制彩色文本和粘贴

时间:2014-05-19 06:49:11

标签: java swing colors jtextpane htmleditorkit

我有一个显示彩色文本的JTextPane。我使用以下代码来从JTextPane获取文本。

String temp = pane.getDocument().getText(0,pane.getDocument().getLength());

但是,当我尝试再次将临时变量内容设置为窗格时,

pane.select(0,pane.getDocument().getLength());
pane.replaceSelection(temp);
通过这种方式,我失去了颜色并得到白色文字。无论如何,我可以保持文本的颜色而不将内容复制到剪贴板。

请帮忙。

1 个答案:

答案 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())
相关问题