用Java写的计算器

package com.wenbo.myprogrem.day15;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Caculator implements ActionListener{

String result="0";

String oper="+";//运算符

Double res;

StringBuilder sb=new StringBuilder();

JTextField jtf = new JTextField(10);

private boolean append=false;

public Caculator(){

JFrame jf = new JFrame("简易计算器");

JPanel jp = new JPanel();

jp.setLayout(new GridLayout(5,4));

String[] lab = {"Backs","CE","E","+","7","8","9",

"-","4","5","6","*","1","2","3",

"/","0","+/-",".","="};

for (int i=0; i <20; i++) {

JButton jb = new JButton(lab[i]);

jb.addActionListener(this);//给每个按钮注册监听器

jp.add(jb);

}

jf.setResizable(false);

jf.add(jp);

jtf.addActionListener(this);

jf.add(jtf,BorderLayout.NORTH);

jf.setSize(320,240);//像素

jf.setLocation(300,200);//设置出现位置

jf.setVisible(true);

jf.setDefaultCloseOperation(//设置X

JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

String comm=e.getActionCommand();//获得按钮上的文字

System.out.println(comm);

if("0123456789".indexOf(comm)!=-1){

if(append){//追加,刚开始是false按完数字键之后是变成true

String temp=jtf.getText();

jtf.setText(temp+comm);

}else{//替换

jtf.setText(comm);

append=true;

}

}else if("+-/*".indexOf(comm)!=-1){//当按到运算符时的处理

result=jtf.getText();//把输入框的内容存起来

oper=comm;

append=false;//不显示运算符,等待下次输入数字

}else if("=".equals(comm)){//计算过程

String s2=jtf.getText();

double d1=Double.parseDouble(result);

double d2=Double.parseDouble(s2);

if("+".equals(oper)){

d1=d1+d2;

}else if("*".equals(oper)){

d1=d1*d2;

}else if("/".equals(oper)){

d1=d1/d2;

}

result=d1+"";//将计算后的结果显示在输入框中

jtf.setText(result);

append=false;

}else if(".".equals(comm)){

String temp=jtf.getText();

if(temp.indexOf(".")==-1){

jtf.setText(temp+".");

append=true;

}

}else if("+/-".equals(comm)){

String temp=jtf.getText();

if(temp.startsWith("-")){//如果是以-开头的数

jtf.setText(temp.substring(1));//用substring截取从第二个字符开始,前面的-不要

}else{

jtf.setText("-"+temp);

}

append=true;

}else if("CE".equals(comm)||"C".equals(comm)){

jtf.setText("0");

}else if("Backs".equals(comm)){

}

}

public static void main(String[] args) {

new Caculator();

}

}

用java计算_用Java写的计算器相关推荐

  1. java char 计算_经典Java面试题之Java中Char类型的运算

    经典Java面试题之Java中Char类型的运算 char在java中称为"字符型",占2个字节.本文是百分网小编搜索整理的关于经典Java面试题之Java中Char类型的运算,有 ...

  2. java 方差_使用java计算数组方差和标准差

    使用java计算数组方差和标准差 觉得有用的话,欢迎一起讨论相互学习~ 首先给出方差和标准差的计算公式 代码 public class Cal_sta { double Sum(double[] da ...

  3. java掌握_掌握Java 11的Constantdynamic

    java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...

  4. 21点 小游戏 java代码_基于Java的21点扑克游戏的实现

    在上次写的比较牌点的扑克游戏上Java扑克游戏(多人多牌数比较游戏)的实现中,添加21点游戏规则,实现21点牌类游戏.具体实现步骤如下:[需要源代码的留QQ,大家一起探讨探讨哈,谢谢啦!] 抽象出规则 ...

  5. java 模板方法_设计模式(java实现)_模板方法模式(Template method)

    设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...

  6. java转账_使用Java模拟银行账户存、取款、转账功能

    半枯 package bank;import java.util.Scanner;/** * 1.建立一个银行账户类(Acount),具有建立新帐号.查询余额.存款.取款.转账 * 即从本账户把钱转给 ...

  7. java书籍_学习Java最好的10本书,从入门到精通

    在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...

  8. 易语言 java支持_开源Java客户端可以连接易语言服务器

    我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...

  9. java 示例_最佳Java示例

    java 示例 什么是Java? (What is Java?) Java is a programming language developed by Sun Microsystems in 199 ...

  10. java 异常_学习Java,你需要知道这些Java异常

    文章目录 异常处理的概念 异常的基本概念 Java异常处理机制的优点 错误的分类 异常的分类 预定义的一些常见异常 异常的处理 抛出异常 捕获异常的语法 生成异常对象 声明自己的异常类 异常处理的概念 ...

最新文章

  1. 微信防撤回python_python使用wxpy实现微信消息防撤回脚本
  2. java 数据结构源码--线段树
  3. 说一下对象或数组转JSON怎么转【fastjson】
  4. 实现图片打乱_2020 回顾 | 25张图片,记录潮州的这一年
  5. 拼多多联合三奇医卫等企业,每天上架1000万只平价口罩
  6. 越有钱越小气,这话说的一点儿都不错
  7. mysql命令:set sql_log_bin=on/off
  8. 性能爆表缺软件?M1版MacBook真不能装Win10吗
  9. 车载与体征/手势检测 毫米波雷达信号处理流程
  10. 带有拉普拉斯平滑的Naive Bayes python代码实现
  11. 论文解读|BMVC 2019 |Fast-SCNN Fast Semantic Segmentation Network
  12. 前端开发找实习宝贵经验总结
  13. bit.ly 短地址转换_使用PHP创建Bit.ly短URL:API版本3
  14. 苹果手机上网速度慢_手机为什么下载速度很慢(揭晓手机下载速度慢的原因)...
  15. 远控免杀专题文章(4)-Evasion模块免杀(VT免杀率12/71)
  16. 网页title如何优化
  17. java 实现 word 文档的在线编辑以及流转
  18. node 单元测试_如何在Node中模拟对单元测试的请求
  19. 天猫直通车的相关定义
  20. 自定义注解(中英文字段名字映射)

热门文章

  1. 常见函数泰勒公式展开(清晰)
  2. 快速截图工具——百度输入法的扩展功能
  3. matlab如何导入大量数据
  4. 高中信息技术教资-笔记-存储容量之间的换算关系
  5. switch怎么用字符c语言,switch怎么用c语言-switch用c语言讲解
  6. 任志强:房价至少还要涨十多年 北京房价不会跌
  7. android 打开word pdf,android word 打开pdf文件 word打开pdf文件
  8. 【MOOC】华中科技大学操作系统慕课答案-期末测试题
  9. SpringBoot构建电商基础秒杀项目
  10. Excel快捷键大全之功能键合集