我有一个名为“outputField”的 JTextPane,当用户按下名为“list”的按钮时,它将运行一个函数来循环搜索 ArrayList,并显示内容。问题是我目前正在像这样 append 每个:
output = output + " " + passengers.get(x).get(y);
问题是,如果我继续按“列表”按钮,它将继续一遍又一遍地 append 相同的值,而不是在用户每次按“列表”按钮时重置。我尝试过设置
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);
}
如果我在数组中有这些值,这就是“list”的输出
值
John Doe 100 200 300 400
Jerry Glock 200 400 600 800
输出: 运行“列表”一次:
John Doe 100 200 300 400
Jerry Glock 200 400 600 800
运行“列表”两次:
John Doe 100 200 300 400 John Doe 100 200 300 400
Jerry Glock 200 400 600 800 Jerry Glock 200 400 600 800
etc.
希望它成为每次运行时都会产生结果的运行“列表”
最佳答案
我已经找到了我自己问题的答案!问题是我将每个单独的数组列表 append 到方法内的主数组列表中。我只是改变了这一点:
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);
}
现在工作正常。
关于java - 如何正确 append 到 JTextPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820082/