我编写了此功能来更改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。开始和结束是我要更改其背景颜色的字符的索引(开始索引和结束索引)。