JTextPaneで単語を検索して強調表示しようとしています。これまでのところ結果が少ない単語でうまく機能しますが、インスタンスが多い単語を検索しようとすると、蛍光ペンが結果をハイライト表示して、文字数が多くないようにすることがあります。 。とにかく、これが私がこの目的のために使用したコードです。
int index = 0;
String text = null;
try {
int length=textPane.getDocument().getLength();
text = textPane.getDocument().getText(0,length);
} catch (BadLocationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while ((index = text.indexOf(myWord, index)) >= 0) {
DefaultHighlighter.DefaultHighlightPainter highlightPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
textPane.getHighlighter().addHighlight(index, index+myWord.length(), highlightPainter);
index += myWord.length();
}
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
これが問題を説明するスクリーンショットです http://i.imgur.com/po6U0rh.png 赤い円=間違った結果、緑の円=正しい結果。
よろしくお願いします。