1

我的程序最终StyledDocument从一个 (A) 中获取一个对象JTextPane并将其传递给另一个JTextPane(B)。当我完成传递时,我希望JTextPane(A) 没有文本和任何格式,并且基本上是具有默认JTextPane设置的对象的全新构建。为此,我目前正在做类似的事情:

//make things
JTextPane inputField = new JTextPane();
JTextPane outputField = new JTextPane();

//move inputField text (with formatting) from inputField to outputField
StyledDocument doc = inputField.getStyledDocument();
EditorKit kit = inputField.getEditorKit();
outputField.setStyledDocument(doc);
outputField.setEditorKit(kit);
outputField.revalidate();

//reset the inputField so that it's fresh and ready for new input
inputField.setStyledDocument(new DefaultStyledDocument());
inputField.setEditorKit(new StyledEditorKit());

我意识到在这个例子中我没有移动任何文本或格式(只是一个空白文档对象),但这些是我正在执行的操作,并且很好奇“更新”工具包和文档是否是一种懒惰的重置方式我JTextPane的默认设置。提前致谢!

4

1 回答 1

1

恕我直言,创建一个新的文档实例绝对没问题。实际上它更快,因为听众不会更新视图以反映空内容Document,然后是新Document's内容。

顺便说一句:如果是同一类,则无需重置套件。打电话就够了setDocument()

于 2013-06-20T18:37:16.617 回答