博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现精简版计算器
阅读量:5272 次
发布时间:2019-06-14

本文共 7466 字,大约阅读时间需要 24 分钟。

  最近没事干,想起来原来上课时老师留过一个作业,就是做一个简单的计算器,实现简单的加减乘除功能,当时学的时候那是一个愁啊,最后也是不了了之了,很明显,不会做啊,今天闲了,突然想起来,应该做做试试吧,当然还是很顺利的,虽然格式规范什么的有点乱,但是功能还是可以实现的,当然由于处理逻辑较简单,只能实现两个数的四则运算,每次计算完后需要按“CE”将结果清除后重新输入。这里把代码共享出来,给刚学习java的童鞋做个参考:

下边是运行的界面:

1 package com.test.JPanel;  2   3 import java.awt.BorderLayout;  4 import java.awt.GridLayout;  5 import java.awt.event.ActionEvent;  6 import java.awt.event.ActionListener;  7 import javax.swing.JButton;  8 import javax.swing.JFrame;  9 import javax.swing.JPanel; 10 import javax.swing.JTextArea; 11  12 public class Calculator extends JFrame { 13  14     /** 15      * @param args 16      * @return 17      * @author zaj 18      * @since 2013/10/6 19      * @ 20      */ 21     JTextArea f1; 22     String s = ""; 23     String s2 = ""; 24     String a1; 25     Double sub1; 26     Double sub2; 27     String operator; 28  29     public class ButtonHandler implements ActionListener { 30  31         @Override 32         public void actionPerformed(ActionEvent e) { 33             // TODO Auto-generated method stub 34             if (!"CE".equals(e.getActionCommand()) 35                     && !"=".equals(e.getActionCommand()) 36                     && !"+".equals(e.getActionCommand()) 37                     && !"-".equals(e.getActionCommand()) 38                     && !"/".equals(e.getActionCommand()) 39                     && !"*".equals(e.getActionCommand())) { 40                 System.out.println("action occurred" + e.getActionCommand()); 41                 a1 = e.getActionCommand(); 42                 s = s + String.valueOf(a1); 43                 if (s2.contains("+") || s2.contains("-") || s2.contains("*") 44                         || s2.contains("/")) { 45                     s2 = s2 + a1; 46                 } 47                 f1.append(a1); 48             } else if ("+".equals(e.getActionCommand())) { 49                 sub1 = Double.parseDouble(s); 50                 System.out.println(sub1); 51  52                 s = s + e.getActionCommand(); 53                 f1.append(e.getActionCommand() + "\n"); 54                 s2 = s.substring(s.length() - 1); 55                 operator = s2; 56                 System.out.println("s2==========" + s2); 57             } else if ("-".equals(e.getActionCommand())) { 58                 sub1 = Double.parseDouble(s); 59                 System.out.println(sub1); 60  61                 s = s + e.getActionCommand(); 62                 f1.append(e.getActionCommand() + "\n"); 63                 s2 = s.substring(s.length() - 1); 64                 operator = s2; 65                 System.out.println("s2==========" + s2); 66             } else if ("*".equals(e.getActionCommand())) { 67                 sub1 = Double.parseDouble(s); 68                 System.out.println(sub1); 69  70                 s = s + e.getActionCommand(); 71                 f1.append(e.getActionCommand() + "\n"); 72                 s2 = s.substring(s.length() - 1); 73                 operator = s2; 74                 System.out.println("s2==========" + s2); 75             } else if ("/".equals(e.getActionCommand())) { 76                 sub1 = Double.parseDouble(s); 77                 System.out.println(sub1); 78  79                 s = s + e.getActionCommand(); 80                 f1.append(e.getActionCommand() + "\n"); 81                 s2 = s.substring(s.length() - 1); 82                 operator = s2; 83                 System.out.println("s2==========" + s2); 84             } else if ("=".equals(e.getActionCommand())) { 85                 s2 = s2.substring(1); 86                 sub2 = Double.parseDouble(s2); 87                 System.out.println(sub2); 88                 Double result = 0.0; 89                 if (operator.equals("+")) { 90                     result = sub1 + sub2; 91                     System.out.println(result); 92                 } 93                 if (operator.equals("-")) { 94                     result = sub1 - sub2; 95                     System.out.println(result); 96                 } 97                 if (operator.equals("*")) { 98                     result = sub1 * sub2; 99                     System.out.println(result);100                 }101                 if (operator.equals("/")) {102                     result = sub1 / sub2;103                     System.out.println(result);104                 }105 106                 f1.append("\n" + String.valueOf(result));107 108             } else if ("CE".equals(e.getActionCommand())) {109 110                 System.out.println(e.getActionCommand());111                 s = "";112                 s2 = "";113                 sub1 = 0.0;114                 sub2 = 0.0;115                 f1.setText("");116             }117 118         }119 120     }121 122     public Calculator() {123         setLayout(new BorderLayout());124         f1 = new JTextArea(3, 15);125         add(f1, "North");126         JPanel p1 = new JPanel();127         add(p1, "Center");128 129         p1.setLayout(new GridLayout(5, 4));130         JButton b1 = new JButton("1");131         JButton b2 = new JButton("2");132         JButton b3 = new JButton("3");133         JButton b4 = new JButton("4");134         JButton b5 = new JButton("5");135         JButton b6 = new JButton("6");136         JButton b7 = new JButton("7");137         JButton b8 = new JButton("8");138         JButton b9 = new JButton("9");139         JButton b10 = new JButton("+");140         JButton b11 = new JButton("-");141         JButton b12 = new JButton("*");142         JButton b13 = new JButton("0");143         JButton b14 = new JButton(".");144         JButton b15 = new JButton("=");145         JButton b16 = new JButton("/");146         JButton b17 = new JButton("CE");147 148         b1.addActionListener(new ButtonHandler());149         b2.addActionListener(new ButtonHandler());150         b3.addActionListener(new ButtonHandler());151         b4.addActionListener(new ButtonHandler());152         b5.addActionListener(new ButtonHandler());153         b6.addActionListener(new ButtonHandler());154         b7.addActionListener(new ButtonHandler());155         b8.addActionListener(new ButtonHandler());156         b9.addActionListener(new ButtonHandler());157         b10.addActionListener(new ButtonHandler());158         b11.addActionListener(new ButtonHandler());159         b12.addActionListener(new ButtonHandler());160         b13.addActionListener(new ButtonHandler());161         b14.addActionListener(new ButtonHandler());162         b15.addActionListener(new ButtonHandler());163         b16.addActionListener(new ButtonHandler());164         b17.addActionListener(new ButtonHandler());165 166         p1.add(b7);167         p1.add(b8);168         p1.add(b9);169         p1.add(b10);170         p1.add(b4);171         p1.add(b5);172         p1.add(b6);173         p1.add(b11);174         p1.add(b1);175         p1.add(b2);176         p1.add(b3);177         p1.add(b12);178         p1.add(b13);179         p1.add(b14);180         p1.add(b15);181         p1.add(b16);182         p1.add(b17);183     }184 185     public static void main(String[] args) {186         Calculator window = new Calculator();187         window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);188         window.setSize(480, 260);189         window.setTitle("Calculator-只能计算两数四则运算,使用完需要按“CE”清除");190         //window.pack();191         window.setVisible(true);192     }193 194 }

 

转载于:https://www.cnblogs.com/mecca/p/3353705.html

你可能感兴趣的文章
从零开始——MySql01
查看>>
基于线程池的线程管理(BlockingQueue生产者消费者方式)实例
查看>>
sqlmap
查看>>
给出随机存储器(RAM)和只读存储器(ROM)的差别
查看>>
CSS3 3D Transform
查看>>
js深拷贝
查看>>
http和socket之长连接和短连接区别(转)
查看>>
【HTML】网页中如何让DIV在网页滚动到特定位置时出现
查看>>
文件序列化
查看>>
C++11 中的线程、锁和条件变量
查看>>
HDU 2485 Destroying the bus stations(!最大流∩!费用流∩搜索)
查看>>
Oracle关于用户信息的一些SQL语句
查看>>
2019-02-28处理公司同事无法上网事件记录
查看>>
cookie的过期时间
查看>>
HTCVive使用
查看>>
Javascript 浏览器检测
查看>>
Java程序员常用工具类库
查看>>
头文件有h和没有h的区别
查看>>
数据库的查询与视图
查看>>
洪涝有源淹没算法及淹没结果分析
查看>>