Почему эта попытка вывести объект arrayList в JtextArea не работает?

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. если есть дополнительная информация, которую мне нужно предоставить, чтобы облегчить более точный ответ, дайте мне знать.

Спасибо -Уилл-


person Will Morton    schedule 26.10.2010    source источник


Ответы (2)


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

Вы не должны использовать setText(), так как вы замените существующий текст. Поэтому появится только последняя строка.

Вы должны использовать:

this.outputText.append(""+o); 
person camickr    schedule 27.10.2010
comment
Я пропустил этот лакомый кусочек в java API для jtextarea. Спасибо большое. - person Will Morton; 27.10.2010

вы также можете использовать класс StringBuffer.. вы можете добавить строки вместе и, наконец, использовать метод .toString().

person bala singareddy    schedule 26.10.2010