文档章节

用Java写的计算器

chenbo
 chenbo
发布于 2016/04/11 10:47
字数 380
阅读 81
收藏 0

                            用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();
  }
 }


© 著作权归作者所有

共有 人打赏支持
chenbo

chenbo

粉丝 3
博文 23
码字总数 9534
作品 0
海淀
产品经理
私信 提问
如何在java制作的计算器中添加语音?(计算器不是applet)

我是大二的学生,刚开学,要做课题,我选了计算器,结果计算器要实现语音报数,(注意计算器不是applet)我找了很多资料看,代码都一样,就是不对,老师又不在,任务快该交了,希望java的前辈...

李嘉图
2013/09/15
380
8
简单计算器

java swing 实现的简单计算器,jdk 7下可正常运行. 该作品可作为java swing学习使用,仅用于java编程学习,或个人使用。 该作品仅承诺可以正常运行,若需要改进功能,需另行商议。...

dhslp
2016/07/31
2
0
【Help!】朋友的亲戚家的熊孩子毕业JAVA答辩题难倒俺了!

朋友家的亲戚家的孩子毕业JAVA题答辩。这熊孩子不好好学习天天就知道玩儿帅哥,这不连JAVA啥模样都不知道,于是求助俺,当时俺那个无奈啊,俺一个搞前端的屌丝哪里懂JAVA这么高级的产物。没办...

guke01
2014/06/30
804
16
java新手怎么变java高手

我这学期刚刚学了java这门语言,以后想当java程序员,来这网站看了很多代码,但是不知道从何学起,哪位达人能给个学习路线- -目前能编简单计算器的水平!!! --跪求各位达人指点

吴坤智
2011/04/24
3.3K
20
Android中各个 Java 包的功能描述

在Android的应用程序开发中,通常使用的是JAVA语言,除了需要熟悉JAVA语言的基础知识之外,还需要了解Android提供的扩展的JAVA功能 在一般的JAVA应用中,如果需用引用基础类库,通常需要使用...

红薯
2009/06/15
808
0

没有更多内容

加载失败,请刷新页面

加载更多

dockerfile 镜像构建(1)

通用dockerfile 利用已经编译好的.jar 来构建镜像。要构建的目录如下: [root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker build -t demo:1 . 运行镜像: [root@iZuf61quxhnlk9m2tkx16cZ de...

Canaan_
50分钟前
2
0
Redis radix tree源码解析

Redis实现了不定长压缩前缀的radix tree,用在集群模式下存储slot对应的的所有key信息。本文将详述在Redis中如何实现radix tree。 核心数据结构 raxNode是radix tree的核心数据结构,其结构体...

阿里云云栖社区
53分钟前
12
0
vue import 传入变量

在做动态添加component的时候,传入变量就会报错,出现以下错误信息: vue-router.esm.js?fe87:1921 Error: Cannot find module '@/components/index'. at eval (eval at ./src/components ......

朝如青丝暮成雪
55分钟前
3
0
Flutter开发 Dio拦截器实现token验证过期的功能

前言: 之前分享过在Android中使用Retrofit实现token失效刷新的处理方案,现在Flutter项目也有“token验证过期”的需求,所以接下来我简单总结一下在Flutter项目中如何实现自动刷新token并重...

EmilyWu
56分钟前
9
0
final Map可以修改内容,final 常量不能修改

1.final Map 可以put元素,但是不可以重新赋值 如: final Map map = new HashMap(); map = new HashMap();//不可以 因为栈中变量map引用地址不能修改 2.final str = “aa”; str = "bb";/......

qimh
59分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部