【问题标题】:ArrayList of type Object to display output in JTextArea用于在 JTextArea 中显示输出的 Object 类型的 ArrayList
【发布时间】:2013-03-22 09:13:45
【问题描述】:

我有这个任务,我在大学工作,我们必须做一个 GUI 询问用户的输入并在 JTextArea 中显示最终输出(对象类型的 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 中,如何使其逐行显示循环?我尝试过创建一个 foreach 循环并附加结果,也尝试过 setText() 和 append() 但它们不接受类型对象,我该怎么做呢?

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

【问题讨论】:

  • 为什么不在每个 MyObject 之后添加新行 '\n'?即 { textarea1.append( o.toString() ); textarea1.append("\n"); }

标签: java swing arraylist jtextarea


【解决方案1】:

如果您想将文本分成几行,请使用textArea.setLineWrap(true);

也不要像@SHA33 所说的那样使用setText()。据我所知,此方法只是更改 JTextArea 中的文本。使用append 方法。如果您想分隔文本,也可以在每行末尾附加\n

你也可以看看这篇文章:

  1. How to Use Text Areas
  2. Class JTextArea

【讨论】:

  • 非常同意,使用 get/setDocument 作为 JTextComponents 的模型
【解决方案2】:

尝试在 for 循环内的 toString() 中返回结果,并改用 textarea1.setText(...)。

【讨论】:

    【解决方案3】:

    这个怎么样?

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

    【讨论】:

      猜你喜欢
      • 2013-07-27
      • 2013-11-26
      • 2015-07-25
      • 2015-08-19
      • 1970-01-01
      • 2015-09-12
      • 2018-05-16
      • 2010-09-11
      • 2011-09-19
      相关资源
      最近更新 更多