Подчеркивание нескольких подстрок в JTextPane

209
03 сентября 2021, 20:30

Я делаю в программе поле для ввода (JTextPane) с проверкой правописания. И хочу сделать подчеркивание у каждого слова, к которому есть варианты замены. Как я могу подчеркнуть несколько различных подстрок в тексте?

В потоке проверки правописания я выполняю следующий код:

for (RuleMatch match : matches) {
    if (match.getToPos() <= text.length() && match.getFromPos() >= 0) {
        JTextPane inputField = ((JTextPane) jTextPane);
        inputField.setText(text);
        inputField.setCaretPosition(position);
        StyledDocument doc = inputField.getStyledDocument();
        SimpleAttributeSet keyWord = new SimpleAttributeSet();
        StyleConstants.setUnderline(keyWord, Boolean.TRUE);
        doc.setCharacterAttributes(match.getFromPos(), match.getToPos() - match.getFromPos(), keyWord, true);
    }
}

Но этот код подчеркивает только последнюю опечатку из цикла.

Как мне сделать такое же подчеркивание, но в нескольких участках JTextPane?

READ ALSO
Canvas кнопка меню

Canvas кнопка меню

Всем привет! Подскажите, пожалуйста: какая технология используется для реализации кнопки меню как на сайте https://wwwpanoply

142
Создать анимацию с помощью setInterval

Создать анимацию с помощью setInterval

При прочтении книги в ней попалась задачка, вроде пустяк, но я никак не могу понять, как правильно это реализовать, подскажите кто нибудь

246
Отслеживание изменений объекта

Отслеживание изменений объекта

Как отследить изменения в объекте?

138
Удаление элементов из state по таймеру

Удаление элементов из state по таймеру

Идея такая: есть локальный state (hook), в нем массив из четырех элементовНа экране есть кнопка добавления нового элемента в этот массив

96