Подсветка JTextPane на основе регулярных выражений? - PullRequest
1 голос
/ 21 февраля 2012

Я хотел бы выделить слова, соответствующие регулярному выражению в JTextPane.

Я видел различные примеры, но все они были очень сложными с полной подсветкой синтаксиса. Я просто хочу выделить (или выделить жирным шрифтом) слово / предложение, есть ли простой способ сделать это?

1 Ответ

1 голос
/ 03 марта 2012

Если общий базовый текст того, что находится в JTextPane, представляет собой обычную строку, а не HTML:

  1. Получить базовый документ из JTextPane.

    StyledDocument sdoc = textpane.getStyledDocument()

EDITED : изменен на прямой вызов textPane.getStyledDocument вместо приведения результата getDocument ()

Получить текст документа.

String text = sdoc.getText(0, sdoc.getLength())

Используйте классы Pattern и Matcher, чтобы найти местоположения, которые соответствуютрегулярное выражение.Я предполагаю, что вы уже знаете, как это сделать.

Для каждого местоположения, где найдено совпадение, выделите начало и конец соответствующей подстроки с помощью sdoc.setCharacterAttributes или используйте маркер (см. JTextPane выделение текста )

...