2016-11-29 4 views
1

私はJAVAを初めて使用しています。
数字を入力してを入力することで、ユーザーが入力したいと思うように多くのマークを入力できます。これを何度も繰り返して、すべてのマークがarraylistに追加されます。完了後、ソートボタンが押され、すべてのマークがソートされて表示されます。
これは私が持っているものです。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"); 
    } 

私が午前問題は、それは私が前に追加されたすべての番号を表示しませんです。最後の番号が表示されます。どんな援助も感謝しており、事前に感謝します!

答えて

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"); 
    } 
+0

ありがとう、私は同じ出力を得ています。そして、「最新の価値をマークリストに押し込む」ということは何を意味しますか? –

+0

上記の提案に従って 'sortActionPerformed()'メソッドを変更しましたか? – Manish

+0

はい私は私のソートボタンを変更しました –

0

実際にイベントが保存される場所はわかりません。それらをmarks配列に追加しますが、それはaddActionPerformedメソッドに対してローカルであり、完了したら失われます。

あなたが投稿したコードだけでは言い難いですが、あなたのクラスでマークをグローバルオブジェクトにしようとすることができます。

+0

私は自分のarraylistを外部に移動してグローバルにしましたが、まだ何もありません –

+0

クラス全体を投稿できますか? – nonickleft4me

関連する問題