2014-11-05 2 views
0

Я хочу покрасить некоторые ключевые слова в JTextPane. Но я не хочу, чтобы сохранить тот же стиль после этих словJTextPane - выключение последнего стиля

while (regexMatcher.find()){ 
      int start = regexMatcher.start(); 
      int end = regexMatcher.end(); 

      document.setCharacterAttributes(start, end-start, style, false); 
     } 

Это работает, однако, когда я нажимаю сразу после последнего символа и введите то, что имеет такое же стиль, но хочу изменить обратно по умолчанию.

Как это разрешить?

ответ

1

Вы можете добавить CaretChangeListener в список JTextPane. При каждом обновлении каретки вы должны очистить атрибуты ввода EditorKit, установленные в JTextPane.

MutableAttributeSet inputAttributes=((StyledEditorKit)pane.getEditorKit()).getInputAttributes(); 
//remove all the unwanted style attributes