Java实现一个简单计算器

先来看看界面效果:

源码如下:

package test1;
 
import java.awt.Frame;
import java.awt.TextField;
import java.awt.Button;
import java.awt.Panel;
import java.awt.GridLayout;
 
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculate {
    TextField tfResult;
    Button btNum[],btOper[],btPoint,btEqual,btBack,btSqrt,btPingfang,btLifang;
    int num1,num2;//操作数
    char oper;//操作符
    boolean isNum;//代表数字标志位
    public void init(){
        Frame f;
        
        tfResult=new TextField();
        
        btNum=new Button[10];//数组对象
        for(int i=0;i<=9;i++){
            btNum[i]=new Button(i+"");
        }
        btOper=new Button[4];
        btOper[0]=new Button("+");
        btOper[1]=new Button("-");
        btOper[2]=new Button("*");
        btOper[3]=new Button("/");
        
        btPoint=new Button(".");
        btEqual=new Button("=");
        btBack=new Button("Backspace");
        btSqrt=new Button("Sqrt");
        btPingfang=new Button("2");
        btLifang=new Button("3");
        f=new Frame("小羊羔的计算器!");
        
        f.setSize(300,300);
        
        //放置组件
        f.add(tfResult,"North");
        Panel panel=new Panel();
        f.add(panel,"Center");
        GridLayout gl=new GridLayout(5,4);
        panel.setLayout(gl);
        panel.add(btNum[1]);
        panel.add(btNum[2]);
        panel.add(btNum[3]);
        panel.add(btOper[0]);
        
        panel.add(btNum[4]);
        panel.add(btNum[5]);
        panel.add(btNum[6]);
        panel.add(btOper[1]);
        
        panel.add(btNum[7]);
        panel.add(btNum[8]);
        panel.add(btNum[9]);
        panel.add(btOper[2]);
        
        panel.add(btNum[0]);
        panel.add(btPoint);
        panel.add(btEqual);
        panel.add(btOper[3]);
        
        panel.add(btBack);
        panel.add(btSqrt);
        panel.add(btPingfang);
        panel.add(btLifang);
        f.setVisible(true);
        
        //注册监听
        f.addWindowListener(new MyWinLis());
        //数字按钮注册监听
        MyNumLis mnl=new MyNumLis();
        for(int i=0;i<=9;i++)
            btNum[i].addActionListener(mnl);
        
        //操作符按钮注册监听
        MyOperLis mol=new MyOperLis();
        for(int j=0;j<=3;j++)
            btOper[j].addActionListener(mol);
        //等号按钮注册监听
        MyEqualLis mel=new MyEqualLis();
        btEqual.addActionListener(mel);
        //删除按钮注册监听
        MyBackLis mbl=new MyBackLis();
        btBack.addActionListener(mbl);
        //开根号按钮注册监听
        MySqrtLis msl=new MySqrtLis();
        btSqrt.addActionListener(msl);
        //平方按钮注册监听
        MyPingfangLis mpl=new MyPingfangLis();
        btPingfang.addActionListener(mpl);
        //百分号注册监听
        MyLifangLis mll=new MyLifangLis();
        btLifang.addActionListener(mll);
    }
    //定义监听器类
    class MyNumLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String t=e.getActionCommand();
            String s=tfResult.getText();
            if(isNum==false)
                tfResult.setText(t);
            else 
                tfResult.setText(s+t);
            isNum=true;
        }
    }
    class MySqrtLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            double t=Double.parseDouble(tfResult.getText());
            tfResult.setText(Math.sqrt(t)+"");
            isNum=false;
        }
    }
    class MyPingfangLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());
            tfResult.setText(num1*num1+"");
        }
    }
    class MyLifangLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());
            tfResult.setText(num1*num1*num1+"");
        }
    }
    class MyOperLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            num1=Integer.parseInt(tfResult.getText());//转化为INT
            oper=e.getActionCommand().charAt(0);
            isNum=false;
        }
    }
    class MyEqualLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            int result=0;
            isNum=false;
            num2=Integer.parseInt(tfResult.getText());
            switch(oper){
                case '+':result=num1+num2;break;
                case '-':result=num1-num2;break;
                case '*':result=num1*num2;break;
                case '/':result=num1/num2;break;
            }
            tfResult.setText(result+"");
        }
    }
    class MyBackLis implements ActionListener{
        public void actionPerformed(ActionEvent e){
            tfResult.setText("");
            isNum=false;
        }
    }
    class MyWinLis extends WindowAdapter{
        public void windowClosing(WindowEvent e){
            e.getWindow().setVisible(false);
            e.getWindow().dispose();
            System.exit(0);
        }
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new calculate().init();
    }
 
}

11×5=?界面如下: 

到此这篇关于Java实现一个简单计算器的文章就介绍到这了,更多相关Java简单计算器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实现计算器设计

    本文实例为大家分享了Java实现计算器设计的具体代码,供大家参考,具体内容如下 需求分析 目的是实现一个基于Java的可以求解带括号加减乘除表达式的带界面的计算器. 需要知道的Java技术:Java Swing(Java图形界面设计).Java集合(栈).lambda表达式.Java基础等. 设计思路 1.实现一个Java计算器界面类 2.实现一个Java计算带括号加减乘除表达式的类 3.实现主函数调用 设计实现 Java计算器项目结构: Calculator类为计算器界面设计.Calculat

  • java实现简单的加减乘除计算器

    本文实例为大家分享了java实现加减乘除计算器的具体代码,供大家参考,具体内容如下 代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.FlowLayout; import javax.swing.*; @SuppressWarnings("unused") class Sumjp { JOptionPane jp = new JOptionPane(); Sumjp(

  • Java实现图形界面计算器

    本文实例为大家分享了Java实现图形界面计算器的具体代码,供大家参考,具体内容如下   代码: import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Stack; public class Calculator extends JFrame implements ActionListener

  • Java实现简单计算器小程序

    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练. 由于期末来了,没太多时间,所以暂时就实现最简单的功能. 个人不喜欢用大量文字记叙程序,而且该程序也相对简单,所以直接画了张程序框架图,再配合代码的注释,就明白程序的原理了. 图 计算器程序框架 代码如下: package tst.jframe; import java.awt.EventQueue; i

  • 用Java实现简单计算器功能

    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制. 实训要求: (1)要使用 java 的 GUI 设计出计算器界面. (2)通过界面按钮,可以实现整数或浮点数的四则运算,并能将结果显示在界面中. (3)计算可以有小数点,和正负整数的计算. (4)要有清零功能. 二.类设计 中缀表达式的计算solution(String str) 用来中算后缀表达式的值,并将结果返回.准备一个数字栈,

  • java gui实现计算器小程序

    本文实例为大家分享了java gui实现计算器小程序的具体代码,供大家参考,具体内容如下 废话不多说 , 直接贴代码 , 有详细的注释 , 我也是刚学GUI没多久 这个是效果图 : 代码: package gui; /** * 导入所需要的包 **/ import java.awt.*; // 这个是java的gui编程里面一个很重要的包 import java.awt.event.*; // 用来处理事件所需要 import java.util.Stack; // 栈 , 我用来处理运算的 p

  • Java实现一个简单计算器

    先来看看界面效果: 源码如下: package test1;   import java.awt.Frame; import java.awt.TextField; import java.awt.Button; import java.awt.Panel; import java.awt.GridLayout;   import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;   import java.awt.

  • 使用java编程从0到1实现一个简单计算器

    学习编程语言最重要的就是实践.很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践.那么,今天我们一起来动手做一个小计算器,回顾下学习过的知识,同时这也是很多大学计算机专业的期末作业,应该尝试动手并完全理解它. 开始动手 本次实验会用到Java Swing图形组件进行开发 主要知识点 Java Swing界面的编程计算器运算逻辑的实现 一.项目创建 打开Eclipse,在文件的菜单File选择 New -> Java Project 2.在Project name一

  • 基于JSP实现一个简单计算器的方法

    本文实例讲述了基于JSP实现一个简单计算器的方法.分享给大家供大家参考.具体实现方法如下: index.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  <%  String path = request.getContextPath();  String basePath = request.getSch

  • java实现一个简单的网络爬虫代码示例

    目前市面上流行的爬虫以python居多,简单了解之后,觉得简单的一些页面的爬虫,主要就是去解析目标页面(html).那么就在想,java有没有用户方便解析html页面呢?找到了一个jsoup包,一个非常方便解析html的工具呢. 使用方式也非常简单,引入jar包: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.

  • Java实现一个简单的定时器代码解析

    定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术. Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务. Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法. 利用java制作定时器比较简单,有现成的接口帮助实现.java中制作定时器使用的是Timer和TimerTask,是util包的.java.util

  • java实现一个简单的Web服务器实例解析

    Web服务器也称为超文本传输协议服务器,使用http与其客户端进行通信,基于java的web服务器会使用两个重要的类, java.net.Socket类和java.net.ServerSocket类,并基于发送http消息进行通信. 这个简单的Web服务器会有以下三个类: *HttpServer *Request *Response 应用程序的入口在HttpServer类中,main()方法创建一个HttpServer实例,然后调用其await()方法,顾名思义,await()方法会在指定端口上

  • Java实现一个简单的文件上传案例示例代码

    Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘中 下面上代码 上传单个文件 服务器端 package FileUpload; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.Serve

  • 什么是递归?用Java写一个简单的递归程序

    什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 例如Java从键盘输入一个数,求输入这个数的阶乘.这个时候把输入的数字作为形参 int diGuiTest(int n ){ } 找到递归函数循环结束条件 在求阶乘的时候,我们不妨做出如下思考,例如输入的n是5,那么5!是5 * 4 3 * 2 * 1,那是不是可以写成 n f(n-1)?,程序运

  • 教你用Java实现一个简单的代码生成器

    前言 逆向工程从数据库表直接生成代码,是日常开发中常用的敏捷开发手段,常见的例如:mybatis-plus的代码生成器等 为什么要自己写代码生成器呢?MP的生成器不香吗?香! 但是自己写的工具用起来最顺手,可以随意扩展,想怎么玩就怎么玩,只要自己有想法,玩出花来都没问题,当然了,能力有限,现在还只能实现简单版本,更多骚操作自己发挥! 思路: 1.建立jdbc连接,执行查询sql,获取表结构信息. 2.在指定的路径上创建文件. 3.按照我们的布局排版要求,根据表结构信息拼接文件的内容. 4.将字符

  • 利用JavaScript写一个简单计算器

    效果如下: 参考程序: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=d

随机推荐