突出显示jtextpane中的特定行

我试图突出显示JTextPane的特定行。 假设我想从JTextPane突出显示第5行,如果行相同,我如何获取indexOf它突出显示?

JTextPane示例内容,我想从下面的行中看第5行和第11行,

此文本来自stackoverflow
此文本来自stackoverflow
此文本来自stackoverflow
此文本来自stackoverflow
此文本来自stackoverflow
此文本来自stackoverflow
此文本来自stackoverflow
此文本来自谷歌
这篇文章来自雅虎
这篇文章来自雅虎
这篇文章来自雅虎
这篇文章来自雅虎

码:

 //Code to highlight //text is jtextpane final static Color HILIT_COLOR = Color.LIGHT_GRAY; DefaultHighlighter hilit = new DefaultHighlighter(); DefaultHighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(HILIT_COLOR); text.setHighlighter(hilit); hilit.removeAllHighlights(); String s = text.getText(); try { hilit.addHighlight(0, 10, painter); } catch (BadLocationException ex) { Logger.getLogger(TextLines.class.getName()).log(Level.SEVERE, null, ex); } 

1) hilit.removeAllHighlights(); 在所有情况下都没有正常工作,你有Highlighter []的填充数组 ,

2)你从JTextComponents提取DocumentModel for JTextComponents ), 教程谈论在文档中搜索 ,然后你可以将文本样式化为 JTextPane (我说的是最简单的方法,有办法如何确定具体行中的内容( s),这些事情可能会使JTextComponents的大小变得复杂化)

3)我从@Stanislav JTextComponents留下关于ColumnsRows答案

我猜你的模型是HTMLDocument ,它不是真正面向行的。 或者,考虑使用JTextPaneJList和自定义渲染器。