我是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");
}
我遇到的问题是它没有显示我之前添加的所有数字。它只显示最后一个数字。任何帮助表示赞赏,并提前感谢您!
答案 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方法的本地方法,并在完成后丢失。
很难说只发布了您发布的代码,但也许您可以尝试将标记作为您班级中的全局对象。