⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.java

📁 能实现类似于windows中计算器的功能~
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
  if(e.getSource() == button[9]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(9)); 
    else textAnswer.setText( "9" );
    start = false;
  }
  if(e.getSource() == buttonAdd){
  if ((textAnswer.getText()).equals("")) return;//求加
    if (Operation!=null) aa(e); 
    Operation= "add";
    Num=textAnswer.getText();
    start = true;
                                }
  if(e.getSource() == buttonSub){
  if ((textAnswer.getText()).equals("")) return;//求减
    if (Operation!=null) aa(e);
    Operation= "sub";
    Num= textAnswer.getText();
    start = true;
                               }                            
  if(e.getSource() == buttonMul){
  if ((textAnswer.getText()).equals("")) return;//求乘
    if (Operation!=null ) aa(e);
    Operation= "mul";
    Num= textAnswer.getText();
    start = true;
                              }                            
  if(e.getSource() == buttonDiv){
  if ((textAnswer.getText()).equals("")) return;//求除
    if (Operation!=null ) aa(e);
    Operation= "div";
    Num= textAnswer.getText();
    start = true;
                               }
  if(e.getSource() == buttonSqrt){
  if ((textAnswer.getText()).equals("")) return;//求开方
    Operation= "sqrt";
    Num= textAnswer.getText();
    if (Operation!=null ) aa(e);
    start = true;
                              }
  if(e.getSource() == buttonDao){
  if ((textAnswer.getText()).equals("")) return;//求倒数
    Operation= "dao";
    Num= textAnswer.getText();
    if (Operation!=null ) aa(e);
    start = true;
                              }
  if(e.getSource() == buttonMod){
  if ((textAnswer.getText()).equals("")) return;//求余数
    if (Operation!=null ) aa(e);
    Operation= "mod";
    Num= textAnswer.getText();
    start = true;
                              } 
                              
    if(e.getSource() == buttonxy){
  if ((textAnswer.getText()).equals("")) return;//求x的y次方
    if (Operation!=null ) aa(e);
    Operation= "x^y";
    Num= textAnswer.getText();
    start = true;
                              } 
     ///////////////////////////////
   if(e.getSource() == buttonln){
  if ((textAnswer.getText()).equals("")) return;//求以e为底的对数
    Num= textAnswer.getText();double last=0;
   try{
       last=Double.parseDouble(Num);
      }catch(NumberFormatException ne){}
      textAnswer.setText(""+Math.log(last));
    start = true;}
    ///////////
    if(e.getSource() == buttonjie){
  if ((textAnswer.getText()).equals("")) return;//求阶乘
    Num= textAnswer.getText();double last=0;
   try{
       last=Double.parseDouble(Num);
      }catch(NumberFormatException ne){}
      textAnswer.setText(""+fac1((long)last));
    start = true;}
    ///////////
    if(e.getSource() == buttonsin){
  if ((textAnswer.getText()).equals("")) return;//求正弦
    Num= textAnswer.getText();double last=0;
   try{
       last=Double.parseDouble(Num);
      }catch(NumberFormatException ne){}
      textAnswer.setText(""+Math.sin(last));
    start = true;}
    /////////
    if(e.getSource() == buttoncos){
  if ((textAnswer.getText()).equals("")) return;//求余弦
    Num= textAnswer.getText();double last=0;
   try{
       last=Double.parseDouble(Num);
      }catch(NumberFormatException ne){}
      textAnswer.setText(""+Math.cos(last));
    start = true;}
    //////
    if(e.getSource() == buttontan){
  if ((textAnswer.getText()).equals("")) return;//求正切
    Num= textAnswer.getText();double last=0;
   try{
       last=Double.parseDouble(Num);
      }catch(NumberFormatException ne){}
      textAnswer.setText(""+Math.tan(last));
    start = true;}
    //////////
     if(e.getSource() == buttonPI){
       textAnswer.setText(""+Math.PI);//求派
       start=true;
                              }
                              
  if(e.getSource() == buttonEqual){
       aa(e);
                              }
  if (e.getSource() == buttonAddAndSub) {
     boolean isNumber = true;
     String s = textAnswer.getText();
     for (int i = 0; i < s.length(); i++)
       if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' ||s.charAt(i) == '-')){
         isNumber = false;
         break;
                  }
     if(isNumber == true) {
        if(s.charAt(0) == '-') {
          textAnswer.setText("");
          for (int i = 1; i < s.length(); i++) {
            char a = s.charAt(i);
            textAnswer.setText(textAnswer.getText() + a);
                                               }
                               }
          else
            textAnswer.setText('-' + s);
                        }
      }
 ///////////////////////////////////////////////////     
 if(e.getSource() == buttonDot){
 if ((textAnswer.getText ( )) .equals ("") ) return;
    if((textAnswer.getText( )).indexOf (".")!= -1 ) return;
     if (!start&&textAnswer.getText()!="")  
          textAnswer.setText(textAnswer.getText()+".");
    else
          textAnswer.setText("0.");
    start = false;
                              }                                
// if(e.getSource() == buttonMC){
 //    textMemory.setText("0");                            
 //                             }    
/* if(e.getSource() == buttonMR){
    String savedNum=textMemory.getText();
    start =true;
    if(!savedNum.equals("")) textAnswer.setText(savedNum);
                               }
 if(e.getSource() == buttonMS){
    textMemory.setText(textAnswer.getText());
                               }
 if(e.getSource() == buttonMAdd){
    String savednumber=textMemory.getText();
   String showstr=textAnswer.getText();
    double sn=0,ss=0;
    if(savednumber.equals("")||showstr.equals("")) return;
    try{
    	sn=Double.parseDouble(savednumber);
        ss=Double.parseDouble(showstr);
        sn+=ss;
        }catch(NumberFormatException ee){
        	textAnswer.setText("输入数格式不对!");
       	start = true;
       	return;
       } 
        int ir=(int)sn; 
        if(ir==sn) textMemory.setText(""+ir);
          else
        textMemory.setText(""+sn);
        start =true;
  } */
  ////////////////////////////////////////////////////////////////
 if (e.getSource() == buttonBk) {
    String s = textAnswer.getText();
    textAnswer.setText("");
    for (int i = 0; i < s.length() - 1; i++) {
    char a = s.charAt(i);
    textAnswer.setText(textAnswer.getText() + a);
        }
      }
 if(e.getSource() == buttonCe) {
     Operation=null;
     textAnswer.setText("0");
     start = true;
      }                             
 if(e.getSource() == buttonC) {
     Operation=null;
     textAnswer.setText("0");
     start = true;
      }
 if (e.getSource() == copyItem) {
     copy = textAnswer.getText();
      }  
 if (e.getSource() == pasteItem) {
     textAnswer.setText(copy);
      }

 if (e.getSource() == topHelp) {
     JOptionPane.showMessageDialog(panel, scrollHelp);
      } 

 if (e.getSource() == aboutCal) {
        JOptionPane.showMessageDialog(panel,"计算器110版\n开发者:吴春辉\n学院:05软件多媒体4班");
      }
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////
public static void main(String args[]) { 
new Calculator(); 
} 
public void aa(ActionEvent e){
  if(Operation == null|| Num ==null||textAnswer.getText().equals("")) return;
  double last =0,now=0,s=0;
  int r=0;
  try{
      last=Double.parseDouble(Num);
       now=Double.parseDouble(textAnswer.getText());
      }catch(NumberFormatException ne){
                                         Operation=null;
                                         Num=null;
                                         textAnswer.setText ("input error");
                                         start =true;
                                         return;
                                       }
  if(Operation.equals ("add")){
    r = (int)(last + now);
      if (r == last + now) textAnswer.setText ("" + r);
      else  textAnswer.setText ("" +  (last + now));
                              }
  if(Operation.equals ("sub")){
    r = (int)(last - now );
      if  ( r == last - now ) textAnswer.setText (""+ r );
      else textAnswer.setText ("" + (last - now));
                                     }
  if(Operation.equals("mul")){
    r = (int)(last *now);
      if ( r== last * now) textAnswer.setText ("" +r);
      else textAnswer.setText ("" + (last * now));
                                     }
  if(Operation.equals ("div") ){
    r = ( int ) (last / now);
      if ( r == last / now) textAnswer.setText (" " +r);
      else textAnswer.setText ("" +  (last / now) );
                                   }
  if(Operation.equals ("mod")){
    r=(int)(last%now);
      if ( r == last%now) textAnswer.setText (" " +r);
      else textAnswer.setText ("" +  (last%now) );
                               }
                               
        if(Operation.equals ("x^y")){
    r=(int)Math.pow(last,now);
      if ( r ==Math.pow(last,now)) textAnswer.setText (" " +r);
      else textAnswer.setText ("" + Math.pow(last,now) );
                               }
                               
  if(Operation.equals ("sqrt")){
    s=Math.sqrt(now);
      textAnswer.setText ("" +s);
                                }
  if(Operation.equals ("dao")){
    s=1/now;
      textAnswer.setText ("" +s);
                                 }
  Num=textAnswer.getText() ;
  Operation=null;
  start=true;
  }
  static long fac1(long x){            //阶乘函数
        long rslt=1;
        for (long i=1;i<=x;i++)
            rslt*=i;
        return rslt;
    }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -