4

我正在尝试创建一个文本编辑器。我正在使用带有 StyledDocument 的 JTextPane。我正在尝试实现的是一种更改所选文本属性的方法。

这以以下方式工作:用户输入所需的文本。之后,他可以通过选择字符串并按下按钮来更改任何字符串的属性(字体系列、字体大小、是否为粗体/斜体),其中通过复选框和下拉列表将选择所需的更改。

我是否可以更改所选字符串的属性而无需重建文档?我一直在寻找,但无法找到合适的解决方案。

4

3 回答 3

4

您将使用 StyledDocument 的 setCharacterAttributes 方法。

这是我的一个 Swing 应用程序的示例,它使用突出显示颜色突出显示文本。

        StyleContext sc = StyleContext.getDefaultStyleContext();
        AttributeSet aset = sc.addAttribute(
                SimpleAttributeSet.EMPTY,
                StyleConstants.Foreground, highlightColor);
        cobolProgram.setCharacterAttributes(offset, length, aset,
                false);

您可以使用其他 StyleConstants 来更改其他样式属性。

于 2013-01-07T16:00:09.307 回答
3

您可以使用 提供的操作StyledEditorKit,在此处查看并在如何使用编辑器窗格和文本窗格中进行了讨论。

图片

于 2013-01-07T19:30:13.513 回答
1

就我而言,当用户更改文本时,我“清理”了样式:

StyledDocument doc = tf.getStyledDocument();

//clean style
doc.setCharacterAttributes(0, sb.length(), DEF, true); 
于 2013-01-07T15:59:25.673 回答