Java - 每次按下按钮时迭代数组

时间:2015-09-21 12:48:36

标签: java swing loops button

我想在每次按下按钮时遍历列表,使用JButton,JTextField和event的ActionListener。所以每次" next"按下按钮数组中的下一项应显示在JTextField中。我已经创建了getter,setter和constructor,它实际上只是我遇到麻烦的以下部分。

@Override
     public void actionPerformed(ActionEvent evt){
     Object source = evt.getSource();

     String[] item = getThing();

     for(int i = 0; i < 3; i ++){
         String currentI = item[i];
     }
     if(source.equals(btnNxt)){
         txtDisplayField.setText(currentI);
     }
}

在if语句中,我收到错误&#34;找不到符号&#34;,指的是currentI。

3 个答案:

答案 0 :(得分:4)

currentI变量在循环结束时超出了范围。你应该在for循环之外声明它。

顺便说一句,代码仍然无法正常工作,因为每次都将值设置为数组的最后一项。你应该只走一次,如果你在最后一个项目,跳到第一个。

答案 1 :(得分:1)

您正在currentI循环范围内初始化String for

因此,在for循环之外无法访问变量。

在循环中移动等式检查和赋值。

for(int i = 0; i < 3; i ++){
    String currentI = item[i];

    if(source.equals(btnNxt)){
        txtDisplayField.setText(currentI);
        // stop iteration as you already found a match
        break;
    }
}

答案 2 :(得分:0)

我不明白为什么你需要一个for循环。

简单地说:

int ctr = 0;
public void actionPerformed(ActionEvent evt){
  ctr++;
  if(ctr<item.length)
    txtDisplayField.setText(iter[ctr]);
}

这应该可以解决你的问题