[Java] java 实现计算器 →→→→→进入此内容的聊天室

来自 , 2020-01-02, 写在 Java, 查看 165 次.
URL http://www.code666.cn/view/e4bb4c51
  1. import java.awt.Container;
  2. import java.awt.GridLayout;
  3. import java.awt.BorderLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTextField;
  10.  
  11. /**
  12.  * Java计算器 Calculater
  13.  */
  14. public class Calculater extends JFrame implements ActionListener {
  15.         JFrame jf;
  16.         JTextField jtf;
  17.         String[] b = new String[] { "+", "-", "*", "/", "." };
  18.         JButton jis = new JButton("=");
  19.         private int temp = 0;
  20.         private float result = 0;
  21.         private float fnumber = 0, bnumber = 0;
  22.  
  23.         public Calculater() {
  24.                 init();
  25.         }
  26.  
  27.         public void init() {
  28.                 jf = new JFrame();
  29.                 jtf = new JTextField();
  30.  
  31.                 Container c = jf.getContentPane();// Returns the contentPane object for
  32.                                                                                         // this frame.
  33.                 jtf.setHorizontalAlignment(JTextField.RIGHT);// 设置文本的水平对齐方式
  34.                 jtf.setLayout(new GridLayout());
  35.                 c.add(jtf, BorderLayout.NORTH);//
  36.  
  37.                 JPanel jp = new JPanel();
  38.                 jp.setLayout(new GridLayout(4, 4));// 对于GridLayout(int rows,int
  39.                                                                                         // cols)详情请参见API
  40.                 c.add(jp, BorderLayout.CENTER);/* 这里刚开始犯了一低级错误,将c写成了jp,逻辑调用都出现了问题 */
  41.  
  42.                 JButton[] ja = new JButton[10];
  43.                 JButton[] jb = new JButton[5];
  44.                 for (int i = 0; i < 10; i++) {
  45.                         ja[i] = new JButton("" + i);
  46.                         ja[i].addActionListener(this);
  47.                 }
  48.                 for (int j = 0; j < 5; j++) {
  49.                         jb[j] = new JButton("" + b[j]);
  50.                         jb[j].addActionListener(this);
  51.                 }
  52.  
  53.                 for (int i = 0; i < 10; i++) {
  54.                         jp.add(ja[i]);
  55.                 }
  56.                 for (int j = 0; j < 5; j++) {
  57.                         jp.add(jb[j]);
  58.                 }
  59.  
  60.                 jp.add(jis);
  61.                 jis.addActionListener(this);
  62.                 jf.setSize(200, 300);
  63.                 jf.setVisible(true);
  64.         }
  65.  
  66.         public void actionPerformed(ActionEvent e) {
  67.                 String s = e.getActionCommand();
  68.                 if (s.equals("+")) {
  69.                         this.fnumber = Float.parseFloat(this.jtf.getText());
  70.                         this.jtf.setText("");
  71.                         this.temp = 1;
  72.                 } else if (s.equals("-")) {
  73.                         this.fnumber = Float.parseFloat(this.jtf.getText());
  74.                         this.jtf.setText("");
  75.                         this.temp = 2;
  76.                 } else if (s.equals("*")) {
  77.                         this.fnumber = Float.parseFloat(this.jtf.getText());
  78.                         this.jtf.setText("");
  79.                         this.temp = 3;
  80.                 } else if (s.equals("/")) {
  81.                         this.fnumber = Float.parseFloat(this.jtf.getText());
  82.                         this.jtf.setText("");
  83.                         this.temp = 4;
  84.                 } else if (s.equals(".")) {
  85.                         if (jtf.equals("")) {
  86.                                 jtf.setText("0.");
  87.                         } else {
  88.                                 jtf.setText(jtf.getText() + ".");
  89.                         }
  90.                 } else if (s.equals("=")) {
  91.                         this.bnumber = Integer.parseInt(this.jtf.getText());
  92.                         switch (this.temp) {
  93.                         case 1:
  94.                                 result = fnumber + bnumber;
  95.                                 this.jtf.setText(String.valueOf(result));
  96.                                 break;
  97.                         case 2:
  98.                                 result = fnumber - bnumber;
  99.                                 this.jtf.setText(String.valueOf(result));
  100.                                 break;
  101.                         case 3:
  102.                                 result = fnumber * bnumber;
  103.                                 this.jtf.setText(String.valueOf(result));
  104.                                 break;
  105.                         case 4:
  106.                                 result = fnumber / bnumber;
  107.                                 this.jtf.setText(String.valueOf(result));
  108.                                 break;
  109.                         }
  110.                 } else {
  111.                         jtf.setText(jtf.getText() + e.getActionCommand());
  112.                 }
  113.         }
  114.  
  115.         public static void main(String[] args) {
  116.                 new Calculater();
  117.         }
  118. }

回复 "java 实现计算器"

这儿你可以回复上面这条便签

captcha