如何添加ArrayList的元素作为元素?

时间:2015-06-02 17:29:36

标签: java for-loop arraylist output

我正在制作一个分析一组学生分数的程序。用户应该能够输入成绩(例如,92,80或50),并且当他们按下“添加”按钮时,他们应该出现在textArea中。我使用整数的ArrayList将所有这些标记添加为元素,并按正确的顺序显示它们。当我尝试这样做时,输出只显示我输入的数字,并在我添加新数字后替换此数字。如果我尝试添加一个更小的数字,它只是保留数字。我觉得我的逻辑是错的。这是我到目前为止的代码:

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
    Integer grade;
    grade = Integer.parseInt(markInput.getText()); //I convert the String to Integer to be able to add it to the ArrayList
    if (grade >=0 & grade <=100){
        marksListing(); //This calls the method that actually displays the items in the ArrayList
    }
    else {
    errorLabel.setText("Invalid grade. Please enter a number between 0 and 100.");
    }
}                                         
private void marksListing() {
    Integer grade;
    grade = Integer.parseInt(markInput.getText());
    marks.add(grade);
    Collections.sort(marks);
for (Integer mark : marks) {
    markBox.setText(String.valueOf(mark));
}

我研究了很长时间,但无法找到解决这个问题的方法。任何帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:1)

问题出在最后的for循环中:setText设置markBox的完整文本,即每次都覆盖最后一个值。您需要将新标记添加到框中当前的文本,例如

markBox.setText(markBox.getText() + String.valueOf(mark));

在两者之间,您可能希望根据自己的喜好添加分隔符。在for循环之外,在添加标记之前,应将文本初始化为空字符串。

答案 1 :(得分:1)

我假设你想要列出的数字,每行一个?如果是这样,你只需要建立一个大字符串,用逗号分隔数字,然后将其放入文本字​​段。请参阅StringBuilder

所以这里有一些伪代码:

StringBuilder sb = new StringBuilder()
for(...){
    sb.append(mark).append("\n")
}
markBox.setText(sb.toString())