我有一个名为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);
}


现在它可以完美地工作了。

10-06 05:06