用java计算_用Java写的计算器
用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写的计算器相关推荐
- java char 计算_经典Java面试题之Java中Char类型的运算
经典Java面试题之Java中Char类型的运算 char在java中称为"字符型",占2个字节.本文是百分网小编搜索整理的关于经典Java面试题之Java中Char类型的运算,有 ...
- java 方差_使用java计算数组方差和标准差
使用java计算数组方差和标准差 觉得有用的话,欢迎一起讨论相互学习~ 首先给出方差和标准差的计算公式 代码 public class Cal_sta { double Sum(double[] da ...
- java掌握_掌握Java 11的Constantdynamic
java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...
- 21点 小游戏 java代码_基于Java的21点扑克游戏的实现
在上次写的比较牌点的扑克游戏上Java扑克游戏(多人多牌数比较游戏)的实现中,添加21点游戏规则,实现21点牌类游戏.具体实现步骤如下:[需要源代码的留QQ,大家一起探讨探讨哈,谢谢啦!] 抽象出规则 ...
- java 模板方法_设计模式(java实现)_模板方法模式(Template method)
设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...
- java转账_使用Java模拟银行账户存、取款、转账功能
半枯 package bank;import java.util.Scanner;/** * 1.建立一个银行账户类(Acount),具有建立新帐号.查询余额.存款.取款.转账 * 即从本账户把钱转给 ...
- java书籍_学习Java最好的10本书,从入门到精通
在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...
- 易语言 java支持_开源Java客户端可以连接易语言服务器
我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...
- java 示例_最佳Java示例
java 示例 什么是Java? (What is Java?) Java is a programming language developed by Sun Microsystems in 199 ...
- java 异常_学习Java,你需要知道这些Java异常
文章目录 异常处理的概念 异常的基本概念 Java异常处理机制的优点 错误的分类 异常的分类 预定义的一些常见异常 异常的处理 抛出异常 捕获异常的语法 生成异常对象 声明自己的异常类 异常处理的概念 ...
最新文章
- 微信防撤回python_python使用wxpy实现微信消息防撤回脚本
- java 数据结构源码--线段树
- 说一下对象或数组转JSON怎么转【fastjson】
- 实现图片打乱_2020 回顾 | 25张图片,记录潮州的这一年
- 拼多多联合三奇医卫等企业,每天上架1000万只平价口罩
- 越有钱越小气,这话说的一点儿都不错
- mysql命令:set sql_log_bin=on/off
- 性能爆表缺软件?M1版MacBook真不能装Win10吗
- 车载与体征/手势检测 毫米波雷达信号处理流程
- 带有拉普拉斯平滑的Naive Bayes python代码实现
- 论文解读|BMVC 2019 |Fast-SCNN Fast Semantic Segmentation Network
- 前端开发找实习宝贵经验总结
- bit.ly 短地址转换_使用PHP创建Bit.ly短URL:API版本3
- 苹果手机上网速度慢_手机为什么下载速度很慢(揭晓手机下载速度慢的原因)...
- 远控免杀专题文章(4)-Evasion模块免杀(VT免杀率12/71)
- 网页title如何优化
- java 实现 word 文档的在线编辑以及流转
- node 单元测试_如何在Node中模拟对单元测试的请求
- 天猫直通车的相关定义
- 自定义注解(中英文字段名字映射)