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 事件,而不是这些函数。然后您可以使用该getSource()方法找到单击的按钮。

于 2013-01-24T13:17:53.093 回答
0

只是TextField.setText("");从每个事件的开始

于 2013-01-24T13:14:07.990 回答