Java 使用StyledDocument设置jTextPane的样式和文本

Java 使用StyledDocument设置jTextPane的样式和文本,java,swing,user-interface,styleddocument,Java,Swing,User Interface,Styleddocument,我正在创建一个基本的Swing应用程序。我有jTextPane和一个按钮。如果用户在jTextPane中选择文本并按下按钮,则会将所选文本加粗。这是通过修改样式文档来完成的 我希望能够临时保存样式化文本,关闭以前的jTextPane,打开新的jTextPane,并基于以前保存的样式化文本填充它。jTextPane在构造函数中接受样式文档,但当我尝试用旧样式文档构造新的jTextPane时,它似乎不起作用。我想这是因为我只是传入了前一个jTextPane样式文档中的引用,该文档最终被删除 有没有办

我正在创建一个基本的Swing应用程序。我有jTextPane和一个按钮。如果用户在jTextPane中选择文本并按下按钮,则会将所选文本加粗。这是通过修改样式文档来完成的

我希望能够临时保存样式化文本,关闭以前的jTextPane,打开新的jTextPane,并基于以前保存的样式化文本填充它。jTextPane在构造函数中接受样式文档,但当我尝试用旧样式文档构造新的jTextPane时,它似乎不起作用。我想这是因为我只是传入了前一个jTextPane样式文档中的引用,该文档最终被删除


有没有办法复制或克隆样式文档?我知道这是一个接口,但它使用的是DefaultStyledDocument吗?有更好的方法吗?

可以用新实例替换文档,例如,当您设置EditorKit或调用setText()时(setText在某些情况下会重新创建文档)

因此,当您存储对旧文档的引用时,请在所有准备工作完成后调用setDocument(oldDoc)

或者,您可以存储旧内容并使用类似的方法将其设置回


阅读“示例”部分中关于读写器和使用代码的内容。

+1
(setText在某些情况下会重新创建文档)
Stas然后请通过克隆
文档
,例如
文档myNewDocument=oldDocument
或是否有其他内容???调用setText时,我们不需要旧文档的内容。所以只创建了一个新实例。唯一的问题是移动文档监听器和属性。“文档可以替换为新实例”这是什么意思?文档和样式文档之间的区别是什么?