突出显示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
提取Document
( Model for JTextComponents
), 教程谈论在文档中搜索 ,然后你可以将文本样式化为 JTextPane
(我说的是最简单的方法,有办法如何确定具体行中的内容( s),这些事情可能会使JTextComponents的大小变得复杂化)
3)我从@Stanislav
JTextComponents
留下关于Columns
和Rows
答案
我猜你的模型是HTMLDocument
,它不是真正面向行的。 或者,考虑使用JTextPane
的JList
和自定义渲染器。