每次我想清除一个并重新开始时,构建一个新的DefaultStyledDocument是不好的形式?

时间:2013-06-20 16:58:27

标签: java swing jtextpane

我的程序最终从一个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重置为默认设置的方法。提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

顺便说一下:如果它是同一类,则无需重置套件。只需拨打setDocument()

即可