每次用户按下按钮(使用 Swing)时,我都会尝试获取特定数组列表中的下一个值。
这是我的尝试:
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++;
}
}
其中 Parse 是一个类,包含 3 个整数的 getter 方法temp、temp2、temp3 和一个 ArrayList 的 getter。
Student s
是 Student 类的对象,其中每个学生都有名字、姓氏和地址(在构造函数中初始化)。
当执行此 if 语句时,它会在指定字段中显示学生信息,但是,这仅适用于前两名学生。在那之后,i
值似乎永远不会增加?
我试图在 if 语句中放置一个 println
检查以查看它的值,但奇怪的是它只更改一次。
我也试着把它变成一个 for 循环,但是这个值似乎又只改变了一次(我的)。
Parse 有我正在使用的这个 getter 方法
public ArrayList<Student> getMacList() {
return mac;
}
CBUniversities 本身也是一个变量:
private javax.swing.JComboBox CBUniversities;
我不确定这里出了什么问题,有什么想法吗?
最佳答案
您在方法范围内声明了 i
,因此每次您的方法执行时它都会重新初始化 i
。
相反,通过将 private int i = 0;
放在方法之外但仍在类范围内来声明实例变量。
关于java - 获取 ArrayList 中的下一个值(不工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880333/