行で構成されるがJTextArea
あります (そのうちのいくつかは、互いに重複している可能性があります)。右クリック時に選択した行を強調表示する必要があるという要件があります。強調表示するために使用しているコードは次のとおりです。
String highlightedText = textArea.getSelectedText();
if(highlightedText != null)
{
try{
int index = textArea.getText().indexOf(highlightedText, textArea.getCaretPosition());
textArea.getHighlighter().addHighlight(index - 1, index + highlightedText.length(),
new DefaultHighlighter.DefaultHighlightPainter(Color.ORANGE));
}catch (BadLocationException ex) {
}
}
右クリック時の強調表示は機能しますが、重複があると選択した行のインデックスを取得できないという問題があります。したがって、次のような行がある場合
あぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
_
_
_
_
_
ユーザーがこの特定の行を強調表示しようとすると、2 番目の「AAAA」のインデックスを取得できません。誰かがこれを機能させるためのアイデア/提案を手伝ってくれますか? ありがとう!