2016-11-29 24 views
1

直接獲取輸入我是新來的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"); 
    } 

我遇到的問題是,它不顯示我的所有前添加數字。它只顯示最後一個號碼。任何幫助表示感謝,並提前感謝您!

回答

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

我不確定事件實際保存在哪裏;您將它們添加到標記數組中,但它對addActionPerformed方法是本地的,並在完成後丟失。

這是很難只用你發佈的代碼說,但也許你可以嘗試讓馬克在你的班上一個全局對象。

+0

我做了我的ArrayList全球受外界但還是移動它沒有 –

+0

您可以張貼整個班組長? – nonickleft4me