基于正则表达式的JTextPane突出显示?

时间:2012-02-21 14:04:51

标签: swing jtextpane

我想突出显示与JTextPane中的正则表达式匹配的单词。

我已经看过各种各样的例子,但是它们都非常复杂,语法高亮。我只是想强调(或以粗体显示)一个单词/句子,有没有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

如果JTextPane中的内容的整体基础文本只是一个常规字符串而不是HTML:

  1. 从JTextPane获取基础文档。

    StyledDocument sdoc = textpane.getStyledDocument()

  2. 已编辑已更改为直接调用textPane.getStyledDocument,而不是转换getDocument()的结果

    1. 获取文档的文本。

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

    2. 使用PatternMatcher类查找与正则表达式匹配的位置。我假设你已经知道如何做到这一点。

    3. 对于找到匹配项的每个位置,请使用sdoc.setCharacterAttributes突出显示匹配子字符串的开头到结尾,或使用突出显示器(请参阅JTextPane highlight text