Java 如何在添加元素时输出ArrayList的元素?

Java 如何在添加元素时输出ArrayList的元素?,java,for-loop,arraylist,output,Java,For Loop,Arraylist,Output,我正在制作一个分析一组学生分数的程序。用户应该能够输入一个等级(例如,92、80或50),当他们按下Add按钮时,他们应该出现在提供的文本区域中。我使用整数数组列表将所有这些标记添加为元素,并以升序正确显示它们。当我尝试这样做时,输出只显示我键入的数字,并在添加新数字后替换该数字。如果我尝试添加一个较小的数字,它只会保留前面的数字。我觉得我的逻辑全错了。以下是我目前掌握的代码: private void addButtonActionPerformed(java.awt.event.Action

我正在制作一个分析一组学生分数的程序。用户应该能够输入一个等级(例如,92、80或50),当他们按下Add按钮时,他们应该出现在提供的文本区域中。我使用整数数组列表将所有这些标记添加为元素,并以升序正确显示它们。当我尝试这样做时,输出只显示我键入的数字,并在添加新数字后替换该数字。如果我尝试添加一个较小的数字,它只会保留前面的数字。我觉得我的逻辑全错了。以下是我目前掌握的代码:

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));
}
private void addButtonActionPerformed(java.awt.event.ActionEvent evt){
整数级;
grade=Integer.parseInt(markInput.getText());//我将字符串转换为整数,以便能够将其添加到ArrayList中

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

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

在这两者之间,您可能需要添加一个您喜欢的分隔符。在for循环之外,文本应该在添加标记之前初始化为空字符串。

我假设您希望列出数字,每行一个?如果是这样,您只需要构建一个大字符串,数字用逗号分隔,然后将其放入文本字段中。S嗯

下面是一些伪代码:

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

这是可行的,但没有考虑到数字需要保持排序顺序。我添加了
markBox.setText(markBox.getText()+String.valueOf(mark)+“\n”)
但现在,它重复它并将其添加到以前的输出框中。例如,它是:70、62、70、50、62、70。它不会替换之前的输出,而是创建一个模式。@GreenGiant:我看到了
For
循环中的一行,其中标记已按排序顺序给出。我添加了一个关于初始化的句子首先是方框。@Nat:我的错,我忘了说在进入for循环之前必须将方框初始化为空字符串。我添加了一个句子。这在替换之前的输出方面是有效的,但现在它将数字添加到另一个旁边,如下图所示:627080。我如何在不同的行中获得它们?我知道你提到过separatin用逗号表示,但你的意思是什么?嗯,我希望你能自己解决这部分:)我已经在上面添加了详细信息。哦!我明白了。我以前从未使用过StringBuilder,绝对是一个方便的工具。谢谢!:)