繁体   English   中英

如何正确地将 append 转换为 JTextPane

[英]How to properly append to a JTextPane

我有一个名为 outputField 的 JTextPane,当用户按下一个名为“列表”的按钮时,它将运行 function 来搜索带有循环的 ArrayList,并显示内容。 问题是我目前正在像这样附加每个:

output = output + " " + passengers.get(x).get(y);

这样做的问题是,如果我继续按下“列表”按钮,它将一遍又一遍地继续 append 相同的值,而不是每次用户按下“列表”按钮时都重置。 我试过设置

String output = "";

但是,在 function 开始时,它不起作用。 这是整个 function:

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);
}

如果我在数组中有这些值,这是“列表”的 output

价值观

约翰·多伊 100 200 300 400
杰里·格洛克 200 400 600 800

output:运行“列表”一次:

约翰·多伊 100 200 300 400
杰里·格洛克 200 400 600 800

运行“列表”两次:

约翰·多伊 100 200 300 400 约翰·多伊 100 200 300 400
杰里·格洛克 200 400 600 800 杰里·格洛克 200 400 600 800
等等

每次运行时都希望它成为运行“列表”一次结果

我找到了自己问题的答案,问题是我附加了每个单独的 arraylist。 到主要的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);
}

它现在完美无缺。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM