java - 如何正确 append 到 JTextPane

标签 java swing arraylist append jtextpane

我有一个名为“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/

相关文章:

java - 不同类型输入消息的设计模式

java - OWLIM-lite 不推断任何陈述

java - 重新绘制 javax 不起作用

java - 从 httpURLConnection 获取 JSONObject 并解析为 ArrayList

java - 当键是对象时如何访问 HashMap 键

java - 正则表达式读取以下格式化字符串模式

java - Spring 框架无法解析 IntelliJ 中的引用

java - 显示 Java Swing 应用程序标题屏幕的最佳方式是什么

java - 我想在满足条件时更改 PaintComponent() 对象的颜色

java - ArrayList没有合适的方法