Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改StyledDocument中的特定字符串属性_Java_Swing_Text Editor_Jtextpane_Styleddocument - Fatal编程技术网

Java 更改StyledDocument中的特定字符串属性

Java 更改StyledDocument中的特定字符串属性,java,swing,text-editor,jtextpane,styleddocument,Java,Swing,Text Editor,Jtextpane,Styleddocument,我正在尝试创建一个文本编辑器。我正在使用带有StyledDocument的JTextPane。我试图实现的是一种更改所选文本属性的方法 其工作方式如下:用户输入所需的文本。之后,他可以通过选择并按下按钮来更改任何字符串的属性(字体系列、字体大小,无论是否为粗体/斜体),通过复选框和下拉列表可以选择所需的更改 我是否可以在不重建文档的情况下更改所选字符串的属性?我一直在搜索,但找不到合适的解决方案。在我的情况下,当用户更改文本时,我“清理”了样式: StyledDocument doc = tf.

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

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

我是否可以在不重建文档的情况下更改所选字符串的属性?我一直在搜索,但找不到合适的解决方案。

在我的情况下,当用户更改文本时,我“清理”了样式:

StyledDocument doc = tf.getStyledDocument();

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

您可以使用StyledDocument的setCharacterAttributes方法

下面是我的一个Swing应用程序的一个示例,它使用高亮颜色高亮显示文本

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

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

您可以使用中查看和讨论的
StyledEditorKit
提供的操作

请看一看: