我的程序最终从一个 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
重置为默认设置的惰性方法。提前致谢!
最佳答案
恕我直言,创建一个新的文档实例绝对没问题。事实上,它更快,因为监听器不会更新 View 来反射(reflect)空的 Document
,然后反射(reflect)新的 Document
内容。
顺便说一句:如果是同一类别,则无需重置套件。调用 setDocument()
关于java - 每次我希望清除一个新的 DefaultStyledDocument 并重新开始时,构建一个新的 DefaultStyledDocument 是一种不好的形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219487/