2013-01-24 27 views
0

我寫了一個計算器,但我連接我的數字的方式是如此糟糕,因爲經過計算讓我說「5 + 2」當我按下相等的按鈕它給出了「7」,問題出現在我想要做另一種計算可以說「6 + 1」它不這樣做,當我按下6按鈕時,它會給出「76 + 1」,即連接我的結果與新的計算,我試圖修復它,但我不能'而不會中斷其他功能。以下是代碼的一部分。如何清除後計算JButtons

private void NineActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"9"); 
}          

private void OneActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"1"); 
}         

private void TwoActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"2"); 
}         

private void ThreeActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"3"); 
}          

private void FourActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"4"); 
}          

private void FiveActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    TextField.setText(TextField.getText()+"5"); 
}          
+0

無法回覆,未發佈[SSCCE](http://sscce.org/)導致a.m.問題 – mKorbel

+0

等待!你正在使用拖放來構建這個。對於初學者來說不是一個好主意。 – Arpit

回答

1

最簡單的辦法:添加清除按鈕,然後按清除文本。

典型的解決方案:

做這樣的事情:

onequalbuttonclick [your equal button action function] 
set equalPress=true; 

在其他功能上做這樣的事情在你的代碼這個

private void NineActionPerformed(java.awt.event.ActionEvent evt) {          
if(equalPress){   
textField.setText(9); 
equalPress=false; 

    } 
else 
textField.setText((Integer.parseInt(TextField.getText()) + 9)); 
} 

評論: 的相反,這些功能只是在你的課堂中添加一個actionPerformed事件。然後您可以使用getSource()方法查找單擊的按鈕。

+0

如果您在該代碼中存在任何問題,請發佈您的整個代碼,我會在您的代碼中調整此代碼。 – Arpit

+0

我有問題改回爲假,但你的方法工作,我可以改變爲假,它知道它的真或假。我無法粘貼我的代碼作爲答案,因爲我的聲望低於10 :) – Plaix

+0

如果您的問題已解決,請接受答案。你會得到+5代表。 :) – Arpit

2

而不是僅僅串接String,你需要計算你的結果會是什麼,例如:

private void NineActionPerformed(java.awt.event.ActionEvent evt) {          
    textField.setText(Integer.toString(Integer.parseInt(TextField.getText()) + 9)); 
} 
0

只要把TextField.setText("");在開始從每一個事件