获取ArrayList中的下一个值(不工作)

TTE*_*TEd 1 java swing arraylist

每次用户按下按钮(使用Swing)时,我都试图获取特定arraylist中的下一个值.

这是我的尝试:

private void BNextActionPerformed(java.awt.event.ActionEvent evt) {
        int i = 0;
        Parse p = new Parse();
        temp = p.getTemp();
        temp2 = p.getTemp2();
        temp3 = p.getTemp3();

        if (CBUniversities.getSelectedIndex() == 0) {
            LNumStudents.setText("Number of students:  " + temp);
            Student s = p.getMacList().get(i+1);
            jTextField2.setText(s.getFirstName());
            TLastName.setText(s.getSurName());
            jTextArea1.setText(s.getAddress());
            i++;
        }
}
Run Code Online (Sandbox Code Playgroud)

其中Parse是一个类,包含3个整数的getter方法temp,temp2,temp3, and a getter for an ArrayList. Student s是Student类的一个对象,其中每个学生都有一个名字,姓氏和地址(在构造函数中初始化).

执行此if语句时,它会在指定的字段中显示学生信息,但这仅适用于前两个学生.在那之后,i价值似乎永远不会增加?

我试图println在if语句中检查它的值,但它只改变一次,奇怪的是.

我也尝试将它变成for循环,但这个值似乎只会改变一次(i).

Parse有我正在使用的这个getter方法

public ArrayList<Student> getMacList() {
        return mac;
}
Run Code Online (Sandbox Code Playgroud)

CBUniversities也是一个变量:

private javax.swing.JComboBox CBUniversities;
Run Code Online (Sandbox Code Playgroud)

我不确定这里出了什么问题,有什么想法吗?

Ben*_* M. 7

i在方法范围内声明,因此每次执行方法时都会重新初始化i.

相反,通过放在private int i = 0;方法之外但仍在类范围内来声明实例变量.