2013-11-23 36 views
1

我對Java(以及一般編程)非常陌生。我正在研究一個程序,該程序應該通過JTextField接受來自用戶的double值,並將其與數組中的相當多的double值相乘,並將結果顯示在JTextArea中。你可以說的一種計算器。將通過JTextField的用戶輸入與雙值數組相乘

現在,我只看到輸入的結果乘以數組中的最後一個值(0.50),並確定有一些與我的循環,數組或缺少的東西,我只是不知道什麼。

double[] percRM = {0.65, 0.75, 0.85, 0.70, 0.80, 0.90, 0.30, 0.40, 0.50};     
double dDouble; 
double pFinal; 

if(ae.getSource() == pressbutton){ 
     pDouble = Double.parseDouble(presstext.getText()); 
     for (int j=0;j<percRM.length;j++){ 
      pFinal = percRM[j] * pDouble; 
     } 
      resulttext.setText("The Sum is:" + "\n" + pFinal+ "\t"); 
     } 

我也有一個JFrame與不少按鈕。請告訴我,如果你想我顯示我的整個代碼。

雖然這裏的IM,我不知道如何可以添加一些文本旁邊印在每個值,可以說,用戶輸入100,其結果將是(例如):

The sum is: 

Week1: 
Set1 = 65 
Set2 = 75 
Set3 = 85 
etc. 

得到任何幫助,謝謝

回答

1

你的問題是你在JTextArea上調用setText(...),並在循環結束後這樣做。 setText(..)將清除JTextArea當前顯示的所有內容,並將其替換爲新文本 - 現在就是您想要的內容。 append(...)方法只是在底部添加新文本。

而是在迴路內調用append(...)

for (int i = 0; i < someLength; i++) { 
    double value = doSomeCalculation(): 
    myTextField.append("result: " + value + "\n"); 
} 
+0

+1 huh!打我。 :) – Sage

+0

謝謝,我現在就去看看。也請看我的編輯。如果您有興趣,我還有其他問題。 – user2900511

+0

@ user2900511:我的示例已經回答了第二部分。只需附加你需要顯示的任何文字即可。 –