2013-04-01 35 views
0

我在大學工作時需要做這個任務,我們必須做一個GUI,詢問用戶的輸入並在JTextArea中顯示最終輸出(類型爲Object的ArrayList)他們在不同的班級。問題是它只顯示我覆蓋的toString()方法的返回值。這裏是我的代碼,這是在非GUI類的toString方法:在JTextArea中顯示輸出的Object類型的ArrayList

@Override 
    public String toString() { 



     int u = 1; 

     System.out.println("Team " + name + " has " + players.size() + " players"); 
     for(int i=0; i< players.size();i++) { 
      System.out.print(u++ + "."); 
      System.out.println(players.get(i)); 
     } 
       return "Team " + name + " has " + size + " players"; 

} 
     } 

這是JTextArea中從GUI類調用它:

public class GUI extends Team {  
     //buttons 
     /constructor 
     public GUI() { 

       frame = new JFrame("Team Manager"); 
       frame.setLayout(new BorderLayout()); 
       frame.setSize(300, 300); 

      jta = new JTextArea(super.toString()); 
      frame.add(jta, BorderLayout.CENTER); } 

只有toString返回的值()正在顯示在JTextArea中,我該如何製作以便逐行顯示循環?我試圖做一個foreach循環並追加結果,也嘗試了setText()和append()但他們不採用類型對象,我應該如何去做這件事?

   for (MyObject o : ArrayList1) { 
       textarea1.append(o.toString()); 
        } 
+1

爲什麼不在每個MyObject之後追加新行'\ n'?即{textarea1.append(o.toString()); textarea1.append(「\ n」); } – Waqas

回答

1

如果你想進線採用textArea.setLineWrap(true);

如說@ SHA33也不要使用setText()分隔文本。因爲我知道這個方法只是改變JTextArea中的文本。使用append方法。如果你想分開文本,你也可以在每行的末尾附加\n

您也可以看看這個文章:

  1. How to Use Text Areas
  2. Class JTextArea
+0

完全同意,使用get/setDocument作爲JTextComponents的模型 – mKorbel

0

嘗試將結果返回for循環中的toString(),並使用textarea1.setText(...)代替。

0

這個怎麼樣?

String str = ""; 
for (MyObject o : ArrayList1) { 
    str = str + o.toString(); 
} 
textarea1.setText(str);