Java Swing,遍历文本区域

标签 java string swing indexof

我想查找文本区域中出现的单词,因此每次按下按钮时,它都会搜索下一个出现的指定单词,就像 Ctrl+F 一样。有谁知道我该怎么做? 这是只查找给定单词第一次出现的代码。

@Override
public void actionPerformed(ActionEvent arg0) {
    if (button == arg0.getSource()) {
        int index = textArea.getText().indexOf(find.getText());
        int len = find.getText().length();
        Highlighter.HighlightPainter highlight = new DefaultHighlighter.DefaultHighlightPainter(Color.BLACK);
        try {
            textArea.getHighlighter().addHighlight(index, index + len, highlight);
        } 
        catch (BadLocationException e) {
            e.printStackTrace();
        }
    }
}

textArea 是我有单词的文本区域,find 是我在 textArea 中搜索特定单词的文本字段。

最佳答案

将先前出现的索引保存为字段,并使用两个参数的indexOf方法,该方法将String和startIndex作为参数。

预计到达时间:public int indexOf(String str, int fromIndex)

关于Java Swing,遍历文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639375/

相关文章:

c - 如何初始化只有空格且没有垃圾的字符串?

c - 使用具有不同分隔符的 token

java - JTextArea不断在for循环中添加行,如何防止这种情况?

java - JTabbedPane - 在选项卡周围设置默认边框..?

java - 如何访问多个同名资源文件?

java - Android MVP 发布 Presenter 的正确方法

java - 为什么这个 GridBagLayout 没有按计划出现?

.net - 为什么 Linq 函数可用于可以是字符串类型的变量

java - 用于更改 JTextPane 中文本颜色的 Java Swing 荧光笔与 StyledDocument

java - 日本字符 - 字节长度