如何正确附加到 JTextPane
How to properly append to a JTextPane
我有一个名为 outputField 的 JTextPane,当用户按下一个名为 'list' 的按钮时,它将 运行 一个通过循环搜索 ArrayList 并显示内容的函数。问题是我目前正在像这样附加每个:
output = output + " " + passengers.get(x).get(y);
问题在于,如果我继续按下 'list' 按钮,它将继续一遍又一遍地附加相同的值,而不是每次用户按下 [=32= 时都重置] 按钮。我试过设置
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
输出:
运行 'list'一次:
John Doe 100 200 300 400
Jerry Glock 200 400 600 800
运行 'list' 两次:
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.
希望它是 运行 'list' 一次结果每次都是 运行
我找到了我自己问题的答案!问题是我将每个单独的数组列表附加到方法内的主数组列表。我只是改变了这个:
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);
}
它现在运行完美。
我有一个名为 outputField 的 JTextPane,当用户按下一个名为 'list' 的按钮时,它将 运行 一个通过循环搜索 ArrayList 并显示内容的函数。问题是我目前正在像这样附加每个:
output = output + " " + passengers.get(x).get(y);
问题在于,如果我继续按下 'list' 按钮,它将继续一遍又一遍地附加相同的值,而不是每次用户按下 [=32= 时都重置] 按钮。我试过设置
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
输出: 运行 'list'一次:
John Doe 100 200 300 400
Jerry Glock 200 400 600 800
运行 'list' 两次:
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.
希望它是 运行 'list' 一次结果每次都是 运行
我找到了我自己问题的答案!问题是我将每个单独的数组列表附加到方法内的主数组列表。我只是改变了这个:
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);
}
它现在运行完美。