我正在尝试创建一个文本编辑器。我正在使用带有 StyledDocument 的 JTextPane。我正在尝试实现的是一种更改所选文本属性的方法。
这以以下方式工作:用户输入所需的文本。之后,他可以通过选择字符串并按下按钮来更改任何字符串的属性(字体系列、字体大小、是否为粗体/斜体),其中通过复选框和下拉列表将选择所需的更改。
我是否可以更改所选字符串的属性而无需重建文档?我一直在寻找,但无法找到合适的解决方案。
我正在尝试创建一个文本编辑器。我正在使用带有 StyledDocument 的 JTextPane。我正在尝试实现的是一种更改所选文本属性的方法。
这以以下方式工作:用户输入所需的文本。之后,他可以通过选择字符串并按下按钮来更改任何字符串的属性(字体系列、字体大小、是否为粗体/斜体),其中通过复选框和下拉列表将选择所需的更改。
我是否可以更改所选字符串的属性而无需重建文档?我一直在寻找,但无法找到合适的解决方案。
您将使用 StyledDocument 的 setCharacterAttributes 方法。
这是我的一个 Swing 应用程序的示例,它使用突出显示颜色突出显示文本。
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(
SimpleAttributeSet.EMPTY,
StyleConstants.Foreground, highlightColor);
cobolProgram.setCharacterAttributes(offset, length, aset,
false);
您可以使用其他 StyleConstants 来更改其他样式属性。
您可以使用 提供的操作StyledEditorKit
,在此处查看并在如何使用编辑器窗格和文本窗格中进行了讨论。
就我而言,当用户更改文本时,我“清理”了样式:
StyledDocument doc = tf.getStyledDocument();
//clean style
doc.setCharacterAttributes(0, sb.length(), DEF, true);