我的程序最终从一个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
重置为默认设置的方法。提前谢谢!
答案 0 :(得分:1)
恕我直言,创建一个新的文档实例绝对没问题。实际上它更快,因为侦听器不会更新视图以反映空Document
,然后是新的Document's
内容。
顺便说一下:如果它是同一类,则无需重置套件。只需拨打setDocument()