Java+NetBeans实现简易的计算器

此计算器能够实现简单的加减乘除运算。

插入图片后的界面:

   Java+NetBeans实现简易的计算器_第1张图片

  创建一个方法来获取数字的值:

private void setNum(String str){
		//实例化对象,获取文本框中的内容
        String strText = new String(jTextField1.getText());
		//如果jTextField1的内容等于“0”,则文本框等于输入的内容str
        if(strText.equals("0")){
            jTextField1.setText(str);
        }else{
			//否则在原来的内容上追加str
            StringBuffer strBuf = new StringBuffer(strText);
            strBuf.append(str);
            jTextField1.setText(strBuf.toString());
        }
    }

  加减乘除和小数点运算:

  注:这里的小数点实现不太合理,但是只要人为输入不错误就能保证小数点的正确实现

private void setPoint(String str){
        String strText = jTextField1.getText();
        //判断strText中字符串的最右边以为是否为运算符
        int lastRight = strText.length()-1;
        //获得倒数第二位的字符
        char ch = strText.charAt(lastRight);
        if(ch == '+' || ch == '_' || ch == '*' || ch == '/' || ch == '.'){
            //替换strText最右边的运算符为当前按键str,如“12345” “1234”
            String strResult = strText.substring(0, lastRight)+str;
            //strResult赋值
            jTextField1.setText(strResult);
        }else{
            //strText追加当前str
            jTextField1.setText(strText+str);
        }
    }
     Java+NetBeans实现简易的计算器_第2张图片

   等于功能:

private void equalMouseReleased(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        //引用脚本,調用js中的eavl()方法
        ScriptEngineManager manager = new ScriptEngineManager();		
        ScriptEngine se = manager.getEngineByName("js");
        try {
            //把字符串转换为表达式(Double类型)“6+3*3”>- 6+3*3
            Double num =(Double)se.eval("("+jTextField1.getText()+")*1.0");
            //从文本框中输出结果
            jTextField1.setText(num.toString());
        } catch (ScriptException ex) {
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
            jTextField1.setText("输入错误,请重新输入");
        }
    }

  退格功能:

private void backspaceMouseReleased(java.awt.event.MouseEvent evt) {                                        
        // TODO add your handling code here:
        String strText = new String(jTextField1.getText());
        if(strText.equals("0")){
           // jTextField1.setText(str);
        }else{
            StringBuffer strBuf = new StringBuffer(strText);
            //按下标删除每一个字符,直到删除完
            strBuf.deleteCharAt(strBuf.length()-1);
            jTextField1.setText(strBuf.toString());
            //当删除到只剩一位数时自动变“0”
          if(strBuf.length()<1){
              jTextField1.setText("0");
          }
        }
    }                  

  清零功能:

private void clearMouseReleased(java.awt.event.MouseEvent evt) {                                    
        // TODO add your handling code here:
        String strText = new String(jTextField1.getText());
          if(strText.equals("0")){
         jTextField1.setText("0");
        }else{
              jTextField1.setText("0");
          }
    }         


 点击按键变色功能:

 //鼠标移动到“9”时按钮变为黄色
    private void jButton9MouseMoved(java.awt.event.MouseEvent evt) {                                    
        // TODO add your handling code here:
        jButton9.setBackground(Color.YELLOW);
    }                                   
    //鼠标从数字“9”移开是按钮变回灰色
    private void jButton9MouseExited(java.awt.event.MouseEvent evt) {                                     
        // TODO add your handling code here:
        jButton9.setBackground(Color.LIGHT_GRAY);
    }                    
   Java+NetBeans实现简易的计算器_第3张图片






你可能感兴趣的:(Java)