回 帖 发 新 帖 刷新版面

主题:一个只实现整数的计算器,求高手帮我看下哪里错了

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calculator extends JFrame{
    JButton jbt1=new JButton("1");
    JButton jbt2=new JButton("2");
    JButton jbt3=new JButton("3");
    JButton jbt4=new JButton("4");
    JButton jbt5=new JButton("5");
    JButton jbt6=new JButton("6");
    JButton jbt7=new JButton("7");
    JButton jbt8=new JButton("8");
    JButton jbt9=new JButton("9");
    JButton jbt0=new JButton("0");
    JButton jbtj=new JButton("+");
    JButton jbti=new JButton("-");
    JButton jbtc=new JButton("*");
    JButton jbtu=new JButton("/");
    JButton jbtd=new JButton("=");
    JTextField jtf=new JTextField();
    JButton jbtq=new JButton("esc");
    int a;
    int result;
    String c;
    CommanddActionListener commandlistener=new CommanddActionListener();
    CalculatorActionListener calculatorActionListener=new CalculatorActionListener();
    LastcommandActionListener LastcommandActionListener=new LastcommandActionListener();
   public static void main(String args[])
   {
       Calculator c=new Calculator();
       c.setSize(400,300);
       c.setVisible(true);
       c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       c.setLocationRelativeTo(null);
       c.setTitle("计算器");
   }
   public Calculator()
   {
      Container container=getContentPane();
        container.setLayout(new BorderLayout());
        JPanel p1=new JPanel(new GridLayout(5,3));
        p1.add(jbt1);
        p1.add(jbt2);
        p1.add(jbt3);
        p1.add(jbt4);
        p1.add(jbt5);
        p1.add(jbt6);
        p1.add(jbt7);
        p1.add(jbt8);
        p1.add(jbt9);
        p1.add(jbt0);
        p1.add(jbtj);
        p1.add(jbti);
        p1.add(jbtc);
        p1.add(jbtu);
        p1.add(jbtd);
        container.add(jtf,BorderLayout.NORTH);
        container.add(p1,BorderLayout.CENTER);
        container.add(jbtq,BorderLayout.WEST);
        jbt1.addActionListener(commandlistener);
        jbt2.addActionListener(commandlistener);
        jbt3.addActionListener(commandlistener);
        jbt4.addActionListener(commandlistener);
        jbt5.addActionListener(commandlistener);
        jbt6.addActionListener(commandlistener);
        jbt7.addActionListener(commandlistener);
        jbt8.addActionListener(commandlistener);
        jbt9.addActionListener(commandlistener);
        jbt0.addActionListener(commandlistener);
        jbtj.addActionListener(calculatorActionListener);
        jbti.addActionListener(calculatorActionListener);
        jbtc.addActionListener(calculatorActionListener);
        jbtu.addActionListener(calculatorActionListener);
        jbtd.addActionListener(LastcommandActionListener);
        
    }
    class CommanddActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(jtf.getText()!=null)
            {
               String input=e.getActionCommand();
               a=Integer.parseInt(input);
               jtf.setText(String.valueOf(a));
            }
            else
            {
                String input=e.getActionCommand();
                result=Integer.parseInt(input);
                jtf.setText(String.valueOf(result));
            }    
        }
    }
    class CalculatorActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            c=e.getActionCommand();
            jtf.setText(c);
        }
    }
    class LastcommandActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(c=="+")
                result+=a;
            if(c=="-");
            result-=a;
            if(c=="*")
                result*=a;
            if(c=="/")
                result/=a;
            jtf.setText(String.valueOf(result));
        }
    }

   }



回复列表 (共2个回复)

沙发

新手  还看不出来

板凳

这是我们实训时自己编的,楼主可以参考一下
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class JiSuanQi {

 
 public static void main(String[] args) {
  MyFrame52 mm = new MyFrame52();
 }
}

class MyFrame52 extends Frame {
 TextField tf = new TextField(25);

 JButton b1 = new JButton("1");
 JButton b2 = new JButton("2");
 JButton b_3 = new JButton("3");
 JButton b42 = new JButton("+");
 
 JButton b_4 = new JButton("4");
 JButton b5 = new JButton("5");
 JButton b6 = new JButton("6");
 JButton b_jian = new JButton("-");
 
 JButton b7 = new JButton("7");
 JButton b8 = new JButton("8");
 JButton b9 = new JButton("9");
 JButton b_cheng = new JButton("*");
 
 JButton b4 = new JButton("0");
 JButton b33 = new JButton("清空");
 JButton b41 = new JButton("=");
 JButton b_chu = new JButton("/");
 
 JButton end=new JButton("关闭");
 
  MyFrame52() {
  
  
  end.setBackground(Color.orange);
  
  b33.addActionListener(new listen(this));
  b4.addActionListener(new listen(this));
  b41.addActionListener(new listen(this));
  b42.addActionListener(new listen(this));
  b1.addActionListener(new listen(this));
  b2.addActionListener(new listen(this));
  b_3.addActionListener(new listen(this));
  b_4.addActionListener(new listen(this));
  b5.addActionListener(new listen(this));
  b6.addActionListener(new listen(this));
  b7.addActionListener(new listen(this));
  b8.addActionListener(new listen(this));
  b9.addActionListener(new listen(this));
  b_chu.addActionListener(new listen(this));
  b_cheng.addActionListener(new listen(this));
  b_jian.addActionListener(new listen(this));
  end.addActionListener(new listen(this));

  JFrame f = new JFrame("简单计算器");
  
  JPanel p2= new JPanel();
  p2.setLayout(new GridLayout(4,4));
  
  p2.add(b1);
  p2.add(b2);
  p2.add(b_3);
  p2.add(b42);
  p2.add(b_4);
  p2.add(b5);
  p2.add(b6);
  p2.add(b_jian);
  p2.add(b7);
  p2.add(b8);
  p2.add(b9);
  p2.add(b_cheng);
  p2.add(b4);
  p2.add(b33);
  p2.add(b41);
  p2.add(b_chu);

  
  f.add(end,BorderLayout.SOUTH);  
  f.add(tf,BorderLayout.NORTH);
  f.add(p2,BorderLayout.CENTER);
  f.pack();
  f.setVisible(true);
  f.setLocation(900, 300);
  f.setSize(250, 254);
  f.setResizable(false);

 }

}

class listen implements ActionListener {
 MyFrame52 dd;

 listen(MyFrame52 ds) {
  this.dd = ds;
 }

 public static int zhi = 0;
 public static int nextzhi = 0;
 public static int sum = 0;
 public static int fuhao;

 public void actionPerformed(ActionEvent e) {
  
  if (dd.b1 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "1");
  } else if (dd.b2 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "2");
  } else if (dd.b_3 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "3");
  } else if (dd.b_4 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "4");
  } else if (dd.b5 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "5");
  } else if (dd.b6 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "6");
  } else if (dd.b7 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "7");
  } else if (dd.b8 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "8");
  } else if (dd.b9 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "9");
  } else if (dd.b_cheng == e.getSource()) {
   fuhao = 1;
   zhi = Integer.parseInt(dd.tf.getText());
   dd.tf.setText("");
  } else if (dd.b_chu == e.getSource()) {
   fuhao = 2;
   zhi = Integer.parseInt(dd.tf.getText());
   dd.tf.setText("");
  } else if (dd.b_jian == e.getSource()) {
   fuhao = 3;
   zhi = Integer.parseInt(dd.tf.getText());;
   dd.tf.setText("");
  } else if (dd.b33 == e.getSource()) {
   zhi = 0;
   nextzhi = 0;
   sum = 0;
   dd.tf.setText("");
  }else if(dd.end== e.getSource()){
      System.exit(0);
  } 
  else if (dd.b4 == e.getSource()) {
   dd.tf.setText(dd.tf.getText() + "0");
  } else if (dd.b41 == e.getSource()) {
   nextzhi = Integer.parseInt(dd.tf.getText());
   dd.tf.setText("");
   if (fuhao == 1) {;
    sum = zhi * nextzhi;
    dd.tf.setText(sum + "");
   } else if (fuhao == 2) {
    sum = zhi / nextzhi;
    dd.tf.setText(sum + "");
   } else if (fuhao == 3) {
    sum = zhi - nextzhi;
    dd.tf.setText(sum + "");
   } else if (fuhao == 4) {
    sum = zhi + nextzhi;
    dd.tf.setText(sum + "");
   }

  } else if (dd.b42 == e.getSource()) {
   fuhao = 4;
   zhi = Integer.parseInt(dd.tf.getText());
   dd.tf.setText("");
  }

 }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册