在我的项目中搜索问题

时间:2015-10-27 09:48:06

标签: javafx

我正在使用javaFx创建一个项目,我需要在文本中搜索给定字符串的第n个匹配项。我的项目中有一个按钮,第一次点击它应该找到第一个匹配,第二次点击它应该找到第二个匹配,所以一个。为此,我使用lambda表达式编写了以下代码

int pos=0;
b1.setOnAction((ActionEvent e) -> {
    String str=ta.getText();    //given text
    String srch=t1.getText();   //string to be searched
    pos = str.indexOf(srch,pos+1);
    ta.selectRange(pos, pos+srch.length());
});

但我收到错误

  

从lambda表达式引用的局部变量必须是最终的或有效的最终版本。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

你能发布完整的代码吗?

也许尝试这样的事情:

int pos=0;
b1.setOnAction(new EventHandler<ActionEvent>() {
    @Override public void handle(ActionEvent e) {
        String str=ta.getText();    //given text
        String srch=t1.getText();   //string to be searched
        pos = str.indexOf(srch,pos+1);
        ta.selectRange(pos, pos+srch.length());
    }
});
相关问题