ArrayList list_of_employees = new ArrayList();
@Action
public void reportAllEmployeesClicked(java.awt.event.ActionEvent evt)
{
this.outputText.setText("");
int i=0;
//JOptionPane.showMessageDialog(null,"test Employee list print");
ListIterator list_ir = list_of_employees.listIterator(); //list_of_employees is of
//obj type ArrayList
while(list_ir.hasNext())
{
String o = new String();
o = (String) list_ir.next();
this.outputText.setText(""+o); // this does not work, why? nothing happens
//no errors and no output
i++;
JOptionPane.showMessageDialog(null,o); // this works
}
}
outputText是嵌套在滚动窗格内的JTextArea类型。 当我使用普通的String变量设置文本时,输出显示为它应该。 当循环运行时,我能够通过JOptionPane获得输出。 存储在列表中的所有对象都是String对象。 如果我需要提供更多信息以便更准确地回答,请告诉我。
由于 - 将会 -
答案 0 :(得分:1)
this.outputText.setText(""+o);
您不应该使用setText(),因为您将替换现有文本。因此,只会显示最后一个字符串。
您应该使用:
this.outputText.append(""+o);
答案 1 :(得分:0)
// use generics
List<String> list_of_employees = new ArrayList<String>();
// use StringBuilder to concatenate Strings
StringBuilder builder = new StringBuilder();
// use advanced for loop to iterate a List
for (String employee : list_of_employees) {
builder.append(employee).append(" "); // add some space
}
// after they are all together, write them out to JTextArea
this.outputText.setText(builder.toString());
答案 2 :(得分:0)
你也可以使用StringBuffer类..你可以将字符串附加在一起,最后使用.toString()方法。