在StyledDocument中更改特定的String属性

时间:2013-01-07 15:22:58

标签: java swing text-editor jtextpane styleddocument

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

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

我是否可以在不需要重建文档的情况下更改所选String的属性?我一直在寻找,但无法找到合适的解决方案。

3 个答案:

答案 0 :(得分:4)

您将使用StyledDocument的setCharacterAttributes方法。

以下是我的一个Swing应用程序的示例,该应用程序使用高亮颜色突出显示文本。

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

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

答案 1 :(得分:3)

您可以使用StyledEditorKit提供的操作,hereHow to Use Editor Panes and Text Panes中讨论过。

image

答案 2 :(得分:1)

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

StyledDocument doc = tf.getStyledDocument();

//clean style
doc.setCharacterAttributes(0, sb.length(), DEF, true);