2

わかりました、数日前、JTextArea の強調表示されたテキストの削除に関して 1 つの投稿を行いました。

特定の単語からハイライトを削除する - Java

問題は、そのサイズに合わせてハイライトを削除するコードを1つ作成したことです...しかし、今ではアプリに同じサイズの単語がたくさんあり、明らかにアプリケーションが正しく実行されていません。

だから私は尋ねます、ハイライトされた各文字列の内容に一致するこの削除を行うライブラリまたは方法を知っている人はいますか?

4

1 に答える 1

1

特定の蛍光ペンのテキストを取得するメソッドを作成できます。

private static String highlightedText(Highlight h, Document d) {
    int start = h.getStartIndex();
    int end = h.getEndIndex();
    int length = end - start;
    return d.getText(start, length);
}

次に、removeHighlightsメソッドは次のようになります。

public void removeHighlights(JTextComponent c, String toBlackOut) {
    Highlighter highlighter = c.getHighlighter();
    Highlighter.Highlight[] highlights = h.getHighlights();
    Document d = c.getDocument();
    for (Highlighter.Highlight h : highlights)
        if (highlightedText(h, d).equals(toBlackOut) && h.getPainter() instanceof TextHighLighter)
            highlighter.removeHighlight(h);
}
于 2013-10-27T21:24:19.217 に答える