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

📄 frame1.java

📁 我自己编写的科学计算器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                 jTshow.setText(a1.toString());//显示a1.
               }
              else{
              a1.append("6");//a1不为0则在a1后加上按钮所代表的值
              jTshow.setText(a1.toString());}//显示a1

  }
/**按钮“7”的事件*/
  void jBa_Num7_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
   b6=false;
    if(a1.length()<=23)  //屏幕只能显示23位,判断a1的长度是否大于23,小于的话则执行后面语句
           if(a1.toString().equals("0")){//判断a1的值是否为0如果为0则清空a1
                 a1=new StringBuffer("7");//为0则清空a1,把按钮说代表的值新赋给a1
                 jTshow.setText(a1.toString());//显示a1.
               }
              else{
              a1.append("7");//a1不为0则在a1后加上按钮所代表的值
              jTshow.setText(a1.toString());}//显示a1

  }
/**按钮“8”的事件*/
  void jBa_Num8_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
   b6=false;
    if(a1.length()<=23)  //屏幕只能显示23位,判断a1的长度是否大于23,小于的话则执行后面语句
           if(a1.toString().equals("0")){//判断a1的值是否为0如果为0则清空a1
                 a1=new StringBuffer("8");//为0则清空a1,把按钮说代表的值新赋给a1
                 jTshow.setText(a1.toString());//显示a1.
               }
              else{
              a1.append("8");//a1不为0则在a1后加上按钮所代表的值
              jTshow.setText(a1.toString());}//显示a1

  }
/**按钮“9”的事件*/
  void jBa_Num9_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
   b6=false;
    if(a1.length()<=23)  //屏幕只能显示23位,判断a1的长度是否大于23,小于的话则执行后面语句
           if(a1.toString().equals("0")){//判断a1的值是否为0如果为0则清空a1
                 a1=new StringBuffer("9");//为0则清空a1,把按钮说代表的值新赋给a1
                 jTshow.setText(a1.toString());//显示a1.
               }
              else{
              a1.append("9");//a1不为0则在a1后加上按钮所代表的值
              jTshow.setText(a1.toString());}//显示a1

  }
/**小数点号按钮事件*/
  void jBa_Opdel_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
   b6=false;
    if(b4==false){
      b5=false;
    }
    else{b5=true;}

    if (b2 == false)  //判断如果b2=false即“.”未输入过则执行下面的语句
      if (a1.length() <= 23) //屏幕只能显示23位,判断a1的长度是否大于23,小于的话则执行后面语句
        if (a1.toString().equals("") == false
            && a1.toString().equals("0.") == false
             &&jTshow.getText().equals("Infinity")==false) {
          //判断在a1不为空不为“Infinity”和“0.”的情况下在在其后添加“.”,避免发生程序异常 Infinity
          a1.append(".");
          jTshow.setText(a1.toString()); //显示a1
          b2 = true; //判断已按下过“.”号,b1设为true使得本次值不再能输入“.”号
        }
        else {
          a1 = new StringBuffer("0."); //当a1为空值或“0.”时,则直接为a1赋值“0.”
          jTshow.setText(a1.toString()); //显示a1
          b2 = true; //判断已按下过“.”号,b1设为true使得本次值不再能输入“.”号
        }

    }

/**加号按钮事件*/
  void jBa_Opadd_actionPerformed(ActionEvent e) {
    this.operator();
    b5=false;
    b6=false;
    b1=1;//为b1赋值为1,定义加法判断为b1=1;
}
/**减号按钮事件*/
  void jBa_Opminus_actionPerformed(ActionEvent e) {
    this.operator();
    b5=false;
    b6=false;
    b1=2;//为b1赋值为5,定义减法判断为b1=2;
  }
/**乘号按钮事件*/
  void jBa_Opmultiply_actionPerformed(ActionEvent e) {
    this.operator();
    b5=false;
    b6=false;
    b1=3;//为b1赋值为3,定义乘法判断为b1=3;
}
/**除号按钮事件*/
  void jBa_Opdivision_actionPerformed(ActionEvent e) {
    this.operator();
    b5=false;
    b6=false;
    b1=4;//为b1赋值为4,定义除法判断为b1=4;
 }
/**等号按钮的事件*/
  void jBa_Opequal_actionPerformed(ActionEvent e) {
try{
  if(b6==false){
    c2 = Float.valueOf(jTshow.getText()).floatValue(); //把屏幕值赋给c2缓存起来
    d1=b1;
  }
  else{c1=c3;}
        a1=new StringBuffer("");//清空a1的值,以便运算后可以重新输入
        a1.append("");
        b2=false;//b2返回false,再次允许输入“.”号
        b4=false;
        b5=false;
      }
catch(Exception r){
        b1=0;
        jTshow.setText("0.");
        a1=new StringBuffer("");
        a1.append("");
        b2=false;//b2返回false,再次允许输入“.”号
            }
    this.count(d1);

    b1 = 0; //把运算判断变量赋为“0”,清空本次运算法则
    b6=true;//表示等号已经按下一次,再按就执行不间断按等号的模块
  }
/**按钮“0”的事件*/
  void jBa_Num0_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
   b6=false;
    if(a1.toString().equals("0")==false){//判断a1不为0则在a1后添加“0”
      a1.append("0");
      jTshow.setText(a1.toString());//显示
    }

  }
/**按钮“CE(清零)”的事件*/
  void jBb_CE_actionPerformed(ActionEvent e) {
    c1=0;//清空第一个数的缓存值
    a1=new StringBuffer("");//清空a1
    jTshow.setText("0.") ;//显示初始屏幕
    b2=false;//b2返回false,再次允许输入“.”号
    b1=0;//把运算判断变量赋为“0”
    b4=false;
    b5=false;
    b6=false;
}
/**按钮"E(亿)"的事件*/
  void jBb_VE_actionPerformed(ActionEvent e) {
    if(b4==false){
  b5=false;
}
else{b5=true;}
b6=false;
    try{float ee=10000000*Float.valueOf(jTshow.getText()).floatValue();//将原数乘以1千万
            if(ee==0||jTshow.getText().equals("Infinity")||jTshow.getText().equals("-Infinity")||jTshow.getText().equals("NaN")){//e==0则清空缓存
            jTshow.setText("0.");
            a1=new StringBuffer("");
            b2=false;//b2返回false,再次允许输入“.”号

            }
          else{ jTshow.setText(String.valueOf(ee));
          a1=new StringBuffer(jTshow.getText());}}
          catch(Exception r){
            jTshow.setText("0.");
            a1=new StringBuffer("");
            b2=false;//b2返回false,再次允许输入“.”号

          }

  }
/**负号按钮的事件*/
  void jButton6_actionPerformed(ActionEvent e) {
    if(b4==false){
 b5=false;
}
else{b5=true;}
b6=false;

    //用0减去当前数再返回给当前数
   float h=0-Float.valueOf(jTshow.getText()).floatValue();
       if(h==0){//判断当前数是0和非0的两种情况
       jTshow.setText("0.");
       a1=new StringBuffer("");
       b2=false;//b2返回false,再次允许输入“.”号
       }
     else{
       jTshow.setText(String.valueOf(h));
       a1=new StringBuffer(jTshow.getText());
     }


  }
/**按钮“M”的事件*/
  void jButton4_actionPerformed(ActionEvent e) {
if(b4==false){
  b5=false;
}
else{b5=true;}
b6=false;
if(jTshow.getText().equals("Infinity")){
         jTshow.setText("0.");
         a1=new StringBuffer("");
     }
else{
           if(b3==false){//判断M是否有值
                  M=jTshow.getText();//把数字记入M
                  a1=new StringBuffer("");
                  b3=true;
                  jButton4.setForeground(Color.GREEN);//按钮“M”字体变绿,告诉用户M已经储存了值
           }
          else{
                   jTshow.setText(M) ;//显示M的值出来
                   a1=new StringBuffer("");
                 }
     }
}
/**按钮“M-”的事件*/
  void jButton3_actionPerformed(ActionEvent e) {
   b3=false;//清空M里面的值
   jButton4.setForeground(Color.black);//把“M”按钮字体颜色变黑,告诉用户M无值
  }
/**常量pi按钮的事件*/
  void jButton39_actionPerformed(ActionEvent e) {
    if(b4==false){
     b5=false;
   }
   else{b5=true;}
    b6=false;
    double p=Math.PI;//获得pi的值
    a1=new StringBuffer(String.valueOf(p));//为0则清空a1,把按钮说代表的值新赋给a1
    jTshow.setText(a1.toString());//显示a1.
    a1=new StringBuffer("");
  }
/**退格键的事件*/
  void jButton2_actionPerformed(ActionEvent e) {
    try{  //判断屏幕显示是否是无穷大小或非数
          if(jTshow.getText().equals("Infinity")||
             jTshow.getText().equals("-Infinity")||
             jTshow.getText().equals("NaN")){
                 jTshow.setText("0.");
                 a1=new StringBuffer("");
                 b2=false;//b2返回false,再次允许输入“.”号
             }
          else{
                 a1.setLength(a1.length()-1);//a1长度减1已达到退一格的效果
                 jTshow.setText(String.valueOf(a1));
                 b2=false;//b2返回false,再次允许输入“.”号
               if(a1.length()==0){//判断a1长度为0时就清空
                        jTshow.setText("0");
                        a1=new StringBuffer("");
                        b2=false;//b2返回false,再次允许输入“.”号
                                  }
               }
        }
    catch(Exception ac){}

  }
/**求余按钮“%”的按钮事件*/
  void jButton8_actionPerformed(ActionEvent e) {
    this.operator();
    b5=false;
    b6=false;
    b1=5;//为b1赋值为5,定义求余判断为b1=5;
}
/**指数计算按钮“exp”按钮的事件*/
  void jButton36_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
    b6=false;
    try{double ee=Math.exp(Double.parseDouble(jTshow.getText()));
                if(ee==0||jTshow.getText().equals("Infinity")||jTshow.getText().equals("-Infinity")||jTshow.getText().equals("NaN")){//e==0则清空缓存
                jTshow.setText("0.");
                a1=new StringBuffer("");
                b2=false;//b2返回false,再次允许输入“.”号
               }
              else{ jTshow.setText(String.valueOf(ee));
              a1=new StringBuffer("");}}
    catch(Exception r){
                jTshow.setText("0.");
                a1=new StringBuffer("");
                b2=false;//b2返回false,再次允许输入“.”号
                  }


  }
/**平方按钮的事件*/
  void jButton28_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
    b6=false;
    try{float ee=Float.valueOf(jTshow.getText()).floatValue()*Float.valueOf(jTshow.getText()).floatValue();//将原数平方
            if(ee==0||jTshow.getText().equals("Infinity")||jTshow.getText().equals("-Infinity")||jTshow.getText().equals("NaN")){//e==0则清空缓存
            jTshow.setText("0.");
            a1=new StringBuffer("");
            b2=false;//b2返回false,再次允许输入“.”号

            }
          else{ jTshow.setText(String.valueOf(ee));
            a1=new StringBuffer("");}}
    catch(Exception r){
            jTshow.setText("0.");
            a1=new StringBuffer("");
            b2=false;//b2返回false,再次允许输入“.”号
              }

  }
/**开方按钮*/
  void jButton35_actionPerformed(ActionEvent e) {
    if(b4==false){
      b5=false;
    }
    else{b5=true;}
    b6=false;
    try{
      double ee=Math.pow(Double.valueOf(jTshow.getText()).doubleValue(),0.5);//将原数开方
                if(ee==0||jTshow.getText().equals("Infinity")||jTshow.getText().equals("-Infinity")||jTshow.getText().equals("NaN")){//e==0则清空缓存
                jTshow.setText("0.");
                a1=new StringBuffer("");
                b2=false;//b2返回false,再次允许输入“.”号

                }
              else{ jTshow.setText(String.valueOf(ee));
                a1=new StringBuffer("");}}
                catch(Exception r){
                jTshow.setText("0.");
                a1=new StringBuffer("");
                b2=false;//b2返回false,再次允许输入“.”号
                  }

⌨️ 快捷键说明

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