0
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 类型。当我使用普通字符串变量设置文本时,输出会按原样显示。当循环运行时,我能够通过 JOptionPane 获得输出。存储在列表中的所有对象都是 String 对象。如果我需要提供更多信息以促进更准确的答案,请告诉我。

谢谢-威尔-

4

3 回答 3

1
this.outputText.setText(""+o); 

您不应该使用 setText() ,因为您将替换现有文本。因此只会出现最后一个字符串。

你应该使用:

this.outputText.append(""+o); 
于 2010-10-27T02:19:36.887 回答
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());
于 2010-10-26T21:30:07.113 回答
0

您也可以使用 StringBuffer 类。您可以将字符串附加在一起,最后使用 .toString() 方法。

于 2010-10-26T22:32:41.820 回答