直接在ArrayList

时间:2016-11-29 04:01:40

标签: java arraylist netbeans user-input

我是JAVA的新手。这就是我要做的事:
用户通过编写一个数字并按添加按钮一遍又一遍地输入所需的标记,并在arraylist中添加所有这些标记。完成后,他按排序按钮,所有标记都被排序和显示 这就是我所拥有的:

ArrayList <Integer> marks=new ArrayList();   
 private void addActionPerformed(java.awt.event.ActionEvent evt) {                                   
    marks.add(Integer.parseInt(marksinput.getText()));
    Collections.addAll(marks);
        }                                   

        private void sortActionPerformed(java.awt.event.ActionEvent evt) {                                     
    ArrayList <Integer> marks=new ArrayList();
    marks.add(Integer.parseInt(marksinput.getText()));
    Collections.addAll(marks);
    Collections.sort(marks);
    marksoutput.setText(marks + "\n");
    }

我遇到的问题是它没有显示我之前添加的所有数字。它只显示最后一个数字。任何帮助表示赞赏,并提前感谢您!

2 个答案:

答案 0 :(得分:1)

您需要在课程级别上推marks列表。请记住,在方法内创建的变量只有方法范围。

//Move it outside of method at class level
ArrayList <Integer> marks=new ArrayList();
private void addActionPerformed(java.awt.event.ActionEvent evt) {   
{                                 
//Push the latest value into marks list, it will already contain all   previous entries as we are not re initializing it.     
marks.add(Integer.parseInt(marksinput.getText()));
} 



private void sortActionPerformed(java.awt.event.ActionEvent evt) {                            
    Collections.sort(marks);
    marksoutput.setText(marks + "\n");
    }

答案 1 :(得分:0)

我不确定事件实际保存在哪里;您将它们添加到标记数组,但这是addActionPerformed方法的本地方法,并在完成后丢失。

很难说只发布了您发布的代码,但也许您可以尝试将标记作为您班级中的全局对象。