【问题标题】:Displaying an array list with each element on a new line?在新行上显示每个元素的数组列表?
【发布时间】:2012-06-02 00:30:48
【问题描述】:

代码:

ArrayList <Integer> marks = new ArrayList();

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
    Collections.addAll(marks, (Integer.parseInt(markInput.getText())));
    marks.add(Integer.parseInt(markInput.getText()));
    for (int j =0; j < marks.size(); j++) {
        markdisplayTextArea.setText(Integer.toString(marks.get(j)));
}

当用户键入并按下“添加”按钮时,该程序应该在 JTextArea 的新行中显示每个数字。

它显示每个数字,但一次只显示一个。我希望输入的每个数字都以升序显示在新行上。因此,如果用户输入了 4 个数字,例如 78、92、54 和 21,我希望它们显示如下:

21
54
78
92

【问题讨论】:

  • 看起来像家庭作业。如果是,则添加作业标签。
  • 这很简单:您希望将数字附加到已经存在的文本中。然后你必须编写代码来连接。尝试一下,如果您遇到任何问题,请告诉我们。
  • 这个我试过了但是不行,markdisplayTextArea.setText(Integer.toString(marks.get(j))) + " " + (marks);

标签: java swing arraylist jtextarea


【解决方案1】:

您正在重置代码最后一个循环中每个循环中的文本。

只需编写一个循环将数字连接成一个字符串(在每个数字后添加\n),然后将JTextArea 的文本设置为连接结果。由于JTextArea支持多行文字,所以应该可以正确显示。

StringBuffer text = new StringBuffer();
for (Integer mark: marks) {
  text.append(mark.toString()).append('\n');
}
markdisplayTextArea.setText(text.toString());

【讨论】:

  • 谢谢,但我不知道该怎么做。另外,我使用的是 NetBeans,所以我是否可以通过“属性”选项卡设置多行文本支持?我可以在此选项卡下看到行和列,但看不到多行支持
  • JTextArea 本身支持多行。无需设置任何选项。
  • 这个我试过了但是不行,markdisplayTextArea.setText(Integer.toString(marks.get(j))) + " " + (marks);
  • 谢谢,但我收到此错误,找不到符号:方法 StringBuffer()
  • 非常感谢!我还删除了这一行,因为它使输入的数字显示两次:marks.add(Integer.parseInt(markInput.getText()));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2020-02-13
  • 2015-06-27
相关资源
最近更新 更多