【问题标题】:Set style and text of a jTextPane using a StyledDocument使用 StyledDocument 设置 jTextPane 的样式和文本
【发布时间】:2012-03-02 17:41:07
【问题描述】:

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

我希望能够暂时保存样式文本,关闭之前的 jTextPane,打开一个新的 jTextPane,然后根据之前保存的样式文本填充它. jTextPane 在构造函数中采用 StyleDocument,但是当我尝试使用旧的 StyleDocument 构造新的 jTextPane 时,它​​似乎不是在职的。我认为这是因为我只是传入了最终被删除的先前 jTextPane StyleDocument 的引用。

有什么方法可以复制或克隆 StyleDocument 吗?我知道它是一个界面,但它使用的是 DefaultStyledDocument 吗?有更好的方法吗?

【问题讨论】:

    标签: java swing user-interface styleddocument


    【解决方案1】:

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

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

    或者您可以存储旧内容并使用类似 http://java-sl.com/editor_kit_tutorial.html 的方式将其恢复

    阅读 Reader 和 Writer 并使用“示例”部分中的代码。

    【讨论】:

    • +1 (setText recreates document in some cases) Stas 请然后Document 可以通过克隆例如Document myNewDocument = oldDocument 或者还有别的吗???
    • 调用 setText 时,我们不需要旧文档的内容。所以只是创建了一个新实例。唯一要做的就是移动 DocumentListeners 和属性。
    • "文档可以用一个新的实例来替换" 你这是什么意思?
    • Document 和 StyledDocument 有什么区别?
    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多