Java+NetBeans實現簡易的計算器

此計算器能夠實現簡單的加減乘除運算。

插入圖片後的界面:

   

  創建一個方法來獲取數字的值:

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);
        }
    }
    

   等於功能:

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);
    }                    
  






發佈了19 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章