Измените цвет фона jTextPane дважды - PullRequest
0 голосов
/ 05 мая 2019

Я написал эту функцию, чтобы изменить цвет фона текста в 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. начало и конец - это индексы символов, которые я хочу изменить в цвете фона (начальный индекс и конечный индекс).

...