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

标签 java swing user-interface styleddocument

我正在创建一个基本的 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/

相关文章:

java - JVM 自动重启

java - 是否有一个使用 Clojure 的实际项目可以利用多核系统,我可以看一下?

java - 单击监听器在 BufferedImage 和 Icon 上返回错误

Java - 填充自定义形状

java - 安卓游戏性能

java - 如何使用 BoxLayout 将 JLabel 在面板中居中

c++ - QPushButton 内部的 QLayout

javascript - AngularJS:从列表中动态添加组件

java - 仅在必要时在 FlowLayout 中显示滚动条

java - 如何配置 Spring-WS 以使用 JAXB Marshaller?