我正在尝试创建一个文本编辑器。我正在使用带有StyledDocument的JTextPane。我想要实现的是一种更改所选文本属性的方法。
这可以通过以下方式工作:用户输入所需的文本。之后,他可以通过选择并按下按钮来更改任何String的属性(字体系列,字体大小,是否为粗体/斜体),通过复选框和下拉列表选择所需的更改。
我是否可以在不需要重建文档的情况下更改所选String的属性?我一直在寻找,但无法找到合适的解决方案。
答案 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
提供的操作,here,How to Use Editor Panes and Text Panes中讨论过。
答案 2 :(得分:1)
就我而言,当用户更改文本时,我“清理”了样式:
StyledDocument doc = tf.getStyledDocument();
//clean style
doc.setCharacterAttributes(0, sb.length(), DEF, true);