JAVA——计算器

来源:互联网 发布:免费家长控制软件 编辑:程序博客网 时间:2024/05/22 11:46

要求:用Java实现一个计算器。

代码:

import java.awt.BorderLayout;  import java.awt.Container;  import java.awt.GridLayout;  import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;  import java.awt.event.KeyAdapter;  import java.awt.event.KeyEvent;  import javax.swing.JButton;  import javax.swing.JFrame;  import javax.swing.JPanel;  import javax.swing.JTextField;  public class Calculator extends JFrame {      public static void main(String[] args) {          Calculator frame = new Calculator();          frame.setTitle("Calculator");          frame.setSize(360, 500);          frame.setResizable(false);          frame.setDefaultCloseOperation(EXIT_ON_CLOSE);           frame.init();               frame.setVisible(true);  //显示界面    }      private void init()       {          int i;        textField = new JTextField();     //文本(显示操作数及结果)        textField.setEditable(false);     //不可更改        textField.setHorizontalAlignment (JTextField.RIGHT);  //格式右对齐        JPanel panel = new JPanel();     //界面        panel.setLayout(new GridLayout(4, 4,3,3));     //排列格式        Container container = getContentPane();           container.add(textField, BorderLayout.NORTH);          container.add(panel, BorderLayout.CENTER);          char Operator[]={'7','8','9','+','4','5','6','-','1','2','3','*','0','.','=','/'};        for(i=0;i<=15;i++)      //添加按钮            panel.add(operateButton(Operator[i]));    }      public JButton operateButton (char key)       {          JButton button = new JButton(String.valueOf(key));         button.addActionListener(new ActionListener()    //注册监听器        {              public void actionPerformed(ActionEvent event)              {                  JButton btn = (JButton) event.getSource();                  char key2 = btn.getText().charAt(0);                  action(key2);              }          });          button.addKeyListener(new KeyAdapter()          {              public void keyReleased(KeyEvent event)              {                  char key2 = event.getKeyChar();                  action(key2);              }          });          return button;      }      private void action(char key2)      {         if(isEqual)           //在key2是运算符的情况下用来判断是否是‘=’或者其他的情况        {              textField.setText("");     //如果是等号,那么在输出结果之前清空文本内容            isEqual = false;          }         switch(key2)     //首先将输入的是运算数还是运算符的情况区别开        {              case '+':                                        //输入为运算符                v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '+';                  break;              case '-':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '-';                  break;              case '*':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '*';                  break;              case '/':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '/';                  break;              case '=':                          //输入等号之后开始运算                isEqual = true;                  v2 = Double.parseDouble(textField.getText());  //如何将操作符后的数字放入v2中                switch(operator)                  {                      case '+':                          value = v1 + v2;                          break;                      case '-':                          value = v1 - v2;                          break;                      case '*':                          value = v1 * v2;                          break;                      case '/':                          value = v1 / v2;                          break;                      default: ;                  }                  textField.setText(String.valueOf(value));                  break;              case '1':                 //输入为运算数的情况            case '2':              case '3':              case '4':              case '5':              case '6':              case '7':              case '8':              case '9':              case '0':              case '.':                  String text = textField.getText() + key2;                  textField.setText(text);                  break;              default: ;          }      }      private JTextField textField;      private double v1, v2, value;      private char operator;      private boolean isEqual = false;  } 
0 0
原创粉丝点击