如何以循环方式在TextArea中高亮显示单词

时间:2014-11-13 07:14:08

标签: java swing search jtextarea

我在TextArea和HighLight中编写了一个用于查找特定单词的代码。但是,它搜索并突出显示从插入符号位置到TextArea结尾的单词。但是,我想从插入符号位置搜索到单词的结尾。 TextArea然后从Textarea开始到结束然后开始结束(循环方式)。我在这里粘贴了我的搜索方法。请检查它。谢谢。

我的搜索字方法:

public void highLight(JTextArea component,String patteren){
    try {
        Document doc=component.getDocument();
        String text=component.getText(0,doc.getLength());
        int pos=component.getCaretPosition();
        int index=text.toLowerCase().indexOf(patteren.toLowerCase(),pos);
        if (index>=0) {
            component.setSelectionStart(index);
            component.setSelectionEnd(index+patteren.length());
            component.getCaret().setSelectionVisible(true);
        }
    }
    catch(Exception e){
    }
}

1 个答案:

答案 0 :(得分:1)

    int index=text.toLowerCase().indexOf(patteren.toLowerCase(),pos);
    if (index>=0) {
        component.setSelectionStart(index);
        component.setSelectionEnd(index+patteren.length());
        component.getCaret().setSelectionVisible(true);
    }
    else {
        index=text.substring(0,pos).toLowerCase().indexOf(patteren.toLowerCase());
        if (index>=0) {
            component.setSelectionStart(index);
            component.setSelectionEnd(index+patteren.length());
            component.getCaret().setSelectionVisible(true);
        }
    }

如果找不到任何内容,请使用文本的前一部分