两次更改jTextPane的背景色

时间:2019-05-04 21:45:29

标签: java jtextpane

我编写了此功能来更改jTextPane中文本的背景颜色。第一次调用它时效果很好,但是为什么当我两次调用功能时,文本窗格中每个字符的背景颜色都变成了颜色c。

private void mark(int start,int end, Color c){
    String markText = MainText.getText().substring(start,end); 
    MainText.setText(MainText.getText().substring(0,start) + 
    MainText.getText().substring(end));
    StyleContext sc = StyleContext.getDefaultStyleContext();
    AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, 
    StyleConstants.Background, c);
    MainText.setCaretPosition(start); 
    MainText.setCharacterAttributes(aset, false);
    MainText.replaceSelection(markText);
}

mainText是jTextPane。开始和结束是我要更改其背景颜色的字符的索引(开始索引和结束索引)。

0 个答案:

没有答案