我有一个名为outputField的JTextPane,当用户按下名为“列表”的按钮时,它将运行一个函数来搜索带有循环的ArrayList,并显示内容。问题是我目前正在像这样附加每个:
output = output + " " + passengers.get(x).get(y);
问题是,如果我继续按下“列表”按钮,它将继续一遍又一遍地添加相同的值,而不是每次用户按下“列表”按钮时都会重置。我尝试设置
String output = "";
但是,在该功能开始时,它不起作用。这是整个功能:
private void listButtonActionPerformed(java.awt.event.ActionEvent evt) {
String output = "";
passengers.add(firstName);
passengers.add(lastName);
passengers.add(weekOne);
passengers.add(weekTwo);
passengers.add(weekThree);
passengers.add(weekFour);
for (int y=0; y<numOfPas; y++) {
for (int x=0; x<passengers.size(); x++) {
output = output + " " + passengers.get(x).get(y);
}
output = output + "\n";
}
outputField.setText(output);
}
如果我在数组中有这些值,则这是“列表”的输出
价值观
约翰·杜100200300400
杰里·格洛克200400600800
输出:
运行一次“列表”:
约翰·杜100200300400
杰里·格洛克200400600800
两次运行“列表”:
John Doe 100200300400 John Doe 100200300400
杰里·格洛克200400600800杰里·格洛克200400600800
等等
希望它成为每次运行一次结果的“运行”列表
最佳答案
我找到了自己问题的答案!问题是我将每个单独的arraylist追加到方法内部的main arraylist中。我只是改变了这一点:
private void listButtonActionPerformed(java.awt.event.ActionEvent evt) {
String output = "";
passengers.add(firstName);
passengers.add(lastName);
passengers.add(weekOne);
passengers.add(weekTwo);
passengers.add(weekThree);
passengers.add(weekFour);
for (int y=0; y<numOfPas; y++) {
for (int x=0; x<passengers.size(); x++) {
output = output + " " + passengers.get(x).get(y);
}
output = output + "\n";
}
outputField.setText(output);
}
对此:
private void listButtonActionPerformed(java.awt.event.ActionEvent evt) {
String output = "";
for (int y=0; y<numOfPas; y++) {
for (int x=0; x<passengers.size(); x++) {
output = output + " " + passengers.get(x).get(y);
}
output = output + "\n";
}
outputField.setText(output);
}
private void formWindowOpened {
passengers.add(firstName);
passengers.add(lastName);
passengers.add(weekOne);
passengers.add(weekTwo);
passengers.add(weekThree);
passengers.add(weekFour);
}
现在它可以完美地工作了。