【问题标题】:Java Swing, iterate through text AreaJava Swing,遍历文本区域
【发布时间】:2016-11-16 18:16:13
【问题描述】:

我想在文本区域中查找单词出现,所以每次我按下button 它都会搜索指定单词的下一个出现,就像 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 中搜索特定单词的文本字段。

【问题讨论】:

  • 如文档中所述,您可以从索引开始查找。所以你需要一种方法来确定你搜索的最后一个索引是什么,并添加一个docs.oracle.com/javase/7/docs/api/java/lang/…
  • @Michael Pickett 好的,我现在试试

标签: java string swing indexof


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2011-09-06
    • 2014-06-06
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多