0

私は計算機を書きましたが、計算後に等号ボタンを押すと「5 + 2」と言うと「7」になるため、数値を連結する方法が非常に悪いため、別の計算をしたいときに「6」と言うと問題が発生します+1" 6 ボタンを押すとこのように実行されず、"76+1" が返されます。つまり、結果を新しい計算と連結します。修正しようとしましたが、別の機能を中断せずに修正できませんでした。以下はコードの一部です。

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

3 に答える 3

2

を連結するだけでなくString、結果がどうなるかを計算する必要があります。次に例を示します。

private void NineActionPerformed(java.awt.event.ActionEvent evt) {                                     
    textField.setText(Integer.toString(Integer.parseInt(TextField.getText()) + 9));
}  
于 2013-01-24T13:13:29.610 に答える
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 イベントを 1 つ追加するだけです。次に、このメソッドを使用してgetSource()、クリックされたボタンを見つけることができます。

于 2013-01-24T13:17:53.093 に答える
0

TextField.setText("");すべてのイベントの最初に置くだけ

于 2013-01-24T13:14:07.990 に答える