我正在创建一个基本的 Swing 应用程序。我有jTextPane和一个按钮。如果用户在jTextPane中选择文本并按下按钮,则会将所选文本加粗。这是通过修改StyleDocument来完成的。
我希望能够临时保存样式文本,关闭以前的jTextPane,打开一个新的jTextPane,并根据以前保存的样式文本填充它。 jTextPane 在构造函数中采用 StyleDocument,但是当我尝试使用旧的 StyleDocument 构造新的 jTextPane 时,它似乎不是在职的。我认为这是因为我只是传递了之前的 jTextPane StyleDocument 的引用,该引用最终被删除。
有什么方法可以复制或克隆 StyleDocument 吗?我知道它是一个界面,但它使用的是 DefaultStyledDocument 吗?有更好的方法吗?
最佳答案
文档可以替换为新实例,例如当您设置 EditorKit 或调用 setText() 时(setText 在某些情况下会重新创建文档)。
因此,当您将引用存储到旧文档时,请在完成所有准备工作后调用 setDocument(oldDoc) 。
或者您可以存储旧内容并使用类似 http://java-sl.com/editor_kit_tutorial.html 的内容将其恢复。
阅读有关 Reader 和 Writer 的信息并使用“示例”部分中的代码。
关于java - 使用 StyledDocument 设置 jTextPane 的样式和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528909/