03 一个计算器,switch语句

在NetBeans中创建一个项目,不要主类,新建一个JFrame,添加一个jTextFiled,18个jButton,如下图:


添加下面这些代码:

double temp;
    double result;//存储结果
    String s = "";//存储显示在屏幕上的值
    String s1 = "";//存储参与计算的值
    byte flag = 0;/*flag=0表示没有选择运算符,1表示加号,2表示减号,
     3表示乘号,4表示除号,5表示取余*/

private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 1;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("+");
        s = "";
    }                                      
    
    private void jButton2MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 2;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("-");
        s = "";
    }                                      
    
    private void jButton3MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 3;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("*");
        s = "";
    }                                      
    
    private void jButton4MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 4;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("/");
        s = "";
    }                                      
    
    private void jButton5MouseReleased(java.awt.event.MouseEvent evt) {                                       
        flag = 5;
        s1 = jTextField1.getText();
        try {
            temp = Double.parseDouble(s1);
            result = temp;
        } catch (NumberFormatException e) {
            jTextField1.setText("还没有输入数字");
        }
        jTextField1.setText("%");
        s = "";
    }                                      
    
    private void jButton7MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 1;
        jTextField1.setText(s);
    }                                      
    
    private void jButton8MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 2;
        jTextField1.setText(s);
    }                                      
    
    private void jButton9MouseReleased(java.awt.event.MouseEvent evt) {                                       
        s = s + 3;
        jTextField1.setText(s);
    }                                      
    
    private void jButton11MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 4;
        jTextField1.setText(s);
    }                                       
    
    private void jButton10MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 5;
        jTextField1.setText(s);
    }                                       
    
    private void jButton12MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 6;
        jTextField1.setText(s);
    }                                       
    
    private void jButton13MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 7;
        jTextField1.setText(s);
    }                                       
    
    private void jButton15MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 8;
        jTextField1.setText(s);
    }                                       
    
    private void jButton14MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 9;
        jTextField1.setText(s);
    }                                       
    
    private void jButton17MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + '.';
        jTextField1.setText(s);
    }                                       
    
    private void jButton16MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s = s + 0;
        jTextField1.setText(s);
    }                                       
    
    private void jButton18MouseReleased(java.awt.event.MouseEvent evt) {                                        
        s1 = jTextField1.getText().trim();
        temp = Double.parseDouble(s1);
        switch (flag) {
            case 1:
                result = result + temp;
                break;
            case 2:
                result = result - temp;
                break;
            case 3:
                result = result * temp;
                break;
            case 4:
                result = result / temp;
                break;
            case 5:
                result = result % temp;
                break;
            default:
                jTextField1.setText("出现错误!");
        }
        jTextField1.setText(String.valueOf(result));
        s = "";
    }                                       
    
    private void jButton6MouseReleased(java.awt.event.MouseEvent evt) {                                       
        result = 0;
        s = "";
        s1 = "";
        flag = 0;
        jTextField1.setText("");
    }                                      


实际上大部分代码是重复的。

基本思路就是每按一下数字键,就为一个字符串类型对象增加一个相应的字符,按下运算符的按键时,将这个字符串转化为数字,double类型的。同时根据运算符的不同将变量flag设置为不同的值。按下等号时,再将新生成的字符串转化为数字,根据flag的值将两个值进行相应的运算,并显示出来。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值