如何在计算JButton后清除

时间:2013-01-24 13:09:13

标签: java swing jbutton jtextfield calculator

我写了一个计算器,但我连接我的数字的方式是如此糟糕,因为计算后让我们说“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");
}                                    

3 个答案:

答案 0 :(得分:2)

您需要计算结果,而不是仅仅连接String,例如:

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

答案 1 :(得分: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()方法找到点击的按钮。

答案 2 :(得分:0)

只需将TextField.setText("");放在每个事件的开头