我想突出显示与JTextPane中的正则表达式匹配的单词。
我已经看过各种各样的例子,但是它们都非常复杂,语法高亮。我只是想强调(或以粗体显示)一个单词/句子,有没有一种简单的方法可以做到这一点?
答案 0 :(得分:1)
如果JTextPane中的内容的整体基础文本只是一个常规字符串而不是HTML:
从JTextPane获取基础文档。
StyledDocument sdoc = textpane.getStyledDocument()
已编辑:已更改为直接调用textPane.getStyledDocument,而不是转换getDocument()的结果
获取文档的文本。
String text = sdoc.getText(0, sdoc.getLength())
使用Pattern
和Matcher
类查找与正则表达式匹配的位置。我假设你已经知道如何做到这一点。
对于找到匹配项的每个位置,请使用sdoc.setCharacterAttributes
突出显示匹配子字符串的开头到结尾,或使用突出显示器(请参阅JTextPane highlight text)