`

简易计算器

阅读更多
package org.tarena.day01;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class CalculatorDemo implements ActionListener {

    static boolean append = true;

    JTextField jt = new JTextField(21);

    //简单计算器
    public void makeCalculator() {
        JFrame jf = new JFrame("CalculatorDemo");
        JPanel one = new JPanel();
        JPanel two = new JPanel();
        String[] str = { "BackS", "CE", "cir", "+/-", "7", "8", "9", "/", "4",
                "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+" };
        // 添加一个JPanel 和一个JLabel
        one.setLayout(new FlowLayout());

        one.add(jt);

        two.setLayout(new GridLayout(5, 4));
        for (int i = 0; i < 20; i++) {
            JButton jbut = new JButton(str[i]);
            jbut.addActionListener(this);
            two.add(jbut);
        }

        jf.add(one, BorderLayout.NORTH);
        jf.add(two, BorderLayout.CENTER);

        jt.setEditable(false);
        jf.setSize(250, 200);
        jf.setLocation(450, 500);
        jf.setVisible(true);
        jf.setResizable(false);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    String num1 = "0";

    String operator = "+";

    public void actionPerformed(ActionEvent e) {
        String comm = e.getActionCommand();
        if ("0123456789".indexOf(comm) != -1) {//也可以用正则验证
            if (append) {// 追加
                String s = jt.getText();
                jt.setText(s + comm);
            } else {// 替换
                jt.setText(comm);
                append = true;
            }
        } else if ("+-*/".indexOf(comm) != -1) {
            num1 = jt.getText();
            operator = comm;
            append = false;
        } else if ("=".equals(comm)) {
            String num2 = jt.getText();
            double d1 = Double.parseDouble(num1);
            double d2 = Double.parseDouble(num2);
            if ("+".equals(operator)) {
                d1 = d1 + d2;
            } else if ("-".equals(operator)) {
                d1 = d1 - d2;
            } else if ("*".equals(operator)) {
                d1 = d1 * d2;
            } else if ("/".equals(operator)) {
                d1 = d1 / d2;
            }
            jt.setText(d1 + "");
            append = false;
        } else if (".".equals(comm)) {//追加小数点;
            String temp = jt.getText();
            jt.setText(temp + ".");
            append = true;
        } else if ("+/-".equals(comm)) {
            String temp = jt.getText();
            if (temp.startsWith("-")) {
                jt.setText(temp.substring(1));
            } else {
                jt.setText("-" + temp);
            }
        } else if ("CE".equals(comm) || "C".equals(comm)) {
            jt.setText("0");
            append = false;
        } else if ("BackS".equals(comm)) {
            String temp = jt.getText();
            if (temp.length() > 0) {
                jt.setText(temp.substring(0, temp.length() - 1));
            }
        }
    }

    public static void main(String[] args) {
        CalculatorDemo c = new CalculatorDemo();
        c.makeCalculator();
    }

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    微信小程序 简易计算器 (源码)

    微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信...

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51...

    基于STC89C52单片机的简易计算器源码+仿真

    基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 ...

    通信工程数电实验简易计算器

    通信工程中的数字电子技术实验是理解并掌握数字系统设计的基础,而“简易计算器”是一个典型的应用实例。这个实验设计了一个能处理四位自然数加减乘运算的计算器,并且具有识别运算优先级和处理溢出错误的功能。在此...

    微信小程序 小工具类 简易计算器 (源代码+截图)

    微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小...

    (微信小程序毕业设计)简易计算器(源码+截图).zip

    (微信小程序毕业设计)简易计算器(源码+截图)(微信小程序毕业设计)简易计算器(源码+截图)(微信小程序毕业设计)简易计算器(源码+截图)(微信小程序毕业设计)简易计算器(源码+截图)(微信小程序毕业设计)简易计算器(源码+...

    java简易计算器 java简易计算器

    java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易...

    mfc 简易计算器(有除零报错功能)

    【标题】:“MFC简易计算器(有除零报错功能)” 这个项目是基于MFC(Microsoft Foundation Classes)框架开发的一个简易计算器应用。MFC是微软提供的C++库,用于构建Windows应用程序,它封装了Windows API,使得...

    java实现简易计算器

    在Java编程语言中实现一个简易计算器是一项常见的学习任务,它能帮助初学者更好地理解面向对象编程的概念、控制流程以及输入/输出操作。下面我们将详细探讨如何实现这样的计算器,并结合提供的"计算器"文件名称来...

    Android开发之简易计算器 源码

    在Android平台上,开发一款简易计算器应用是初学者到专业开发者都会遇到的一个经典案例。这个"Android开发之简易计算器 源码"项目旨在提供一个基础的实现,帮助开发者理解和掌握Android应用开发的基本流程,以及如何...

    简易计算器_lcd1602计算器_基于AT89C51的简易计算器_用LCD写计算器_

    本项目“简易计算器_lcd1602计算器_基于AT89C51的简易计算器_用LCD写计算器”就是一个典型的实例,它结合了8位微控制器AT89C51与LCD1602显示器,来实现一个简单的计算器功能。这个设计的核心在于通过编程让微控制器...

    基于51单片机简易计算器设计

    它具有内置的RAM(随机存取存储器)、ROM(只读存储器)以及一些基本的I/O端口,使得在设计电子设备时可以实现各种功能,如在这个案例中的简易计算器。 【简易计算器设计基础】 设计一个基于51单片机的简易计算器...

    C语言编写的简易计算器

    在本文中,我们将深入探讨如何使用C语言在Microsoft Visual Studio 2015环境下构建一个简易计算器。这个计算器是基于栈和队列的数据结构实现,非常适合C语言初学者进行学习和实践。 首先,C语言是一种强大的、低...

    android eclipse 编写的简易计算器

    在这个简易计算器项目中,主要涉及到的是Activity,它是用户界面和交互的核心。Activity负责显示UI,并响应用户的操作。 在Eclipse中,开发者会使用XML布局文件来设计用户界面。在这个案例中,计算器的UI可能包含...

    简易计算器_c++jianyijisuanqi_if_简易计算器_labview_

    【简易计算器_c++jianyijisuanqi_if_简易计算器_labview_】 本文将深入探讨如何使用C++和LabVIEW来实现一个简易计算器,重点涉及条件结构(if语句)的应用,以及LabVIEW中的图形化编程概念。 首先,让我们从C++的...

    基于单片机简易计算器设计

    基于单片机简易计算器设计 在本设计中,我们将使用单片机 CH451 和 STC89C51 两种芯片来设计一个简易计算器。该计算器能够进行加减乘除运算,具有 4×5 键盘和 1602LCD 显示器。 知识点: 1. 单片机简易计算器...

    51单片机做简易计算器

    总结起来,利用51单片机制作简易计算器,我们需要: 1. 理解51单片机的结构和工作原理。 2. 使用Keil uVision编写和编译C语言程序。 3. 设计并实现运算逻辑,处理加、减、乘、除四种运算。 4. 编写输入和输出的代码...

    按键简易计算器_msp430f5529_

    【标题】"按键简易计算器_msp430f5529"项目解析 这个项目是基于 MSP430F5529 微控制器设计的一款简易计算器,它通过按键进行数字增减操作,并在128x64 OLED显示屏上显示结果。MSP430F5529 是德州仪器(TI)推出的一...

    简易计算器_html_源码

    在"简易计算器_html_源码"这个项目中,我们可以深入探讨以下几个关键的HTML知识点: 1. **HTML结构**:HTML文档通常由`&lt;!DOCTYPE html&gt;`声明开始,定义文档类型。接着是`&lt;html&gt;`元素,它是整个页面的根元素,包含`...

Global site tag (gtag.js) - Google Analytics