我的程序最终从一个JTextPane(A)中获取一个StyledDocument对象,并将其传递给另一个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重置为默认设置的一种懒惰方式。提前感谢!
发布于 2013-06-21 02:37:17
我想创建一个新的文档实例是完全可以的。实际上,它更快,因为侦听器不会更新视图来反映空的Document和新的Document's内容。
顺便说一句:如果是同一类,则不需要重置工具包。这足以调用setDocument()
https://stackoverflow.com/questions/17219487
复制相似问题