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