0

私は大学で働いているこの割り当てを持っています。ユーザーからの入力を求める GUI を実行し、JTextArea に最終出力 (Object 型の ArrayList) を表示する必要があります。それらは別のクラスにあります。問題は、上書きした toString() メソッドからの戻り値のみを表示していることです。これが私のコードです。これは、非 GUI クラスの toString メソッドです。

  @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";

}
        }

これは、GUI クラスから呼び出す JTextArea です。

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 に表示されていますが、ループを 1 行ずつ表示するにはどうすればよいですか? foreach ループを作成して結果を追加しようとしましたが、setText() と append() も試しましたが、型オブジェクトを取りません。これを行うにはどうすればよいですか?

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

3 に答える 3

0

for ループ内の toString() で結果を返すようにし、代わりに textarea1.setText(...) を使用してください。

于 2013-04-01T09:48:25.117 に答える
0

これはどう?

String str = "";
for ( MyObject o : ArrayList1) {
    str = str + o.toString();
}
textarea1.setText(str);
于 2013-04-01T09:59:47.903 に答える