java吧 关注:1,261,569贴子:12,759,010
  • 4回复贴,共1

求各位大神帮忙完善一些我这个计算器。

只看楼主收藏回复

我这个无法实现他的计算功能,可以键入,但是他没法记录我在文本框里的东西并计算出结果。


IP属地:山东1楼2015-07-23 22:05回复
    package keshe;
    import java.util.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class Calculater extends JFrame implements ActionListener{
    JTextField x;
    String preOperater = "";
    double sum = 0 ;
    public Calculater(String title){
    super(title);
    this.setBounds(150,150,650,200);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    x = new JTextField(50);
    this.getContentPane().add(x,"North");
    String buttoned[]={"0","1","2","3",
    "+/-",".","C","退格","求倒 ",
    "4","5","6","7","+","-",
    "*","/","%","8","9","=",
    "sqrt","pow","log","cos","tan"," exp"};
    JPanel p = new JPanel();
    p.setLayout(new GridLayout(3,9,10,10));
    for(int k=0;k<buttoned.length;k++) {
    JButton b=new JButton(buttoned[k]);


    IP属地:山东4楼2015-07-23 22:32
    回复
      2025-05-28 16:16:04
      广告
      }
      else if(Command.equals("log")){
      log();
      }
      else if(Command.equals("cos")){
      cos();
      }
      else if(Command.equals("tan")){
      tan();
      }
      else if(Command.equals("exp")){
      exp();
      }
      else if(Command.equals("求倒")){
      qiudao();
      }
      else if(Command.equals("C")){
      clear();
      }
      else{
      doOperation();
      x.setText("");
      }}
      catch(Exception ex) {sum=0; x.setText("");}
      }
      void xiaoshu(){
      String s=x.getText();
      if(s.indexOf(".")==-1){
      x.setText(s+".");
      }
      }
      void fuhao(){
      String s=x.getText();
      if(s.indexOf("-")==-1){
      x.setText("-"+x.getText());
      }
      }
      void backspace(){
      String s=x.getText();
      if(s.length()>0){
      x.setText(s.substring(0,s.length()-1));
      }
      }
      void dengyu(){
      doOperation();
      x.setText(""+sum);
      preOperater="";
      }
      void sqrt(){
      double m=Double.parseDouble(x.getText());
      if (m<0)
      x.setText("负数不能开根号");
      else
      x.setText(""+Math.sqrt(m));
      }
      void log(){
      double m=Double.parseDouble(x.getText());
      if (m<0)
      x.setText("负数不能进行自然对数运算");
      else
      x.setText(""+Math.log(m));
      }
      void cos(){
      double m=Double.parseDouble(x.getText());
      x.setText(""+Math.cos(m));
      }
      void tan(){
      double m=Double.parseDouble(x.getText());
      x.setText(""+Math.tan(m));
      }
      void exp(){
      double m=Double.parseDouble(x.getText());
      x.setText(""+Math.exp(m));
      }


      IP属地:山东6楼2015-07-23 22:34
      回复
        void qiudao(){
        if (Double.parseDouble(x.getText())==0)
        x.setText("除数不能为零");
        else{
        x.setText(""+1/(Double.parseDouble(x.getText())));
        preOperater="";
        }
        }
        void clear(){
        sum=0;
        x.setText("");
        preOperater="";
        }
        void doOperation(){
        double m=Double.parseDouble(x.getText());
        if(preOperater.equals("")) sum=m;
        if(preOperater.equals("+")) sum=sum+m;
        if(preOperater.equals("-")) sum=sum-m;
        if(preOperater.equals("*")) sum=sum*m;
        if(preOperater.equals("/")) sum=sum/m;
        if(preOperater.equals("%")) sum=sum%m;
        if(preOperater.equals("pow")) sum=Math.pow(sum, m);
        }
        // }
        public static void main(String a[]){
        new Calculater("计算器");
        }
        }


        IP属地:山东7楼2015-07-23 22:34
        回复

          我实行1+1出现的结果


          IP属地:山东8楼2015-07-23 22:41
          回复