java实现计算器的退格功能_帮忙看下这个java做的计算器为什么实现不了退格和清零功能,3q...
已结贴√
问题点数:5 回复次数:1
帮忙看下这个java做的计算器为什么实现不了退格和清零功能,3q
import java.awt.*;
import java.awt.event.*;
public class Calculator extends WindowAdapter implements ActionListener{
private double result=0,data1=0,radixPointDepth=1;
private boolean radixPointIndicate=false,resultIndicate=false;
private char prec='+';
private Frame f;
private TextField tf;
private Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20;
private Panel p;
private String lastCommand;// 保存+,-,*,/,=命令
private boolean start;// 判断是否为数字的开始
static public void main(String args[]){
Calculator de=new Calculator();
de.go();
}
public void go(){f=new Frame();
p=new Panel();
p.setLayout(new GridLayout(5,4));
tf=new TextField(30);
b1=new Button("BackSpace");
b2=new Button("C");
b3=new Button("CE");
b4=new Button("+/-");
b5=new Button("7");
b6=new Button("8");
b7=new Button("9");
b8=new Button("+");
b9=new Button("4");
b10=new Button("5");
b11=new Button("6");
b12=new Button("-");
b13=new Button("1");
b14=new Button("2");
b15=new Button("3");
b16=new Button("*");
b17=new Button("0");
b18=new Button(".");
b19=new Button("=");
b20=new Button("/");
f.add(tf,"North");
f.add(p,"Center");
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(b10);
p.add(b11);
p.add(b12);
p.add(b13);
p.add(b14);
p.add(b15);
p.add(b16);
p.add(b17);
p.add(b18);
p.add(b19);
p.add(b20);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
b18.addActionListener(this);
b19.addActionListener(this);
b20.addActionListener(this);
f.addWindowListener(this);
f.setSize(300,200);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e){
String s;
s=e.getActionCommand();
if (start) {
tf.setText("");
start = false;
if (s.equals("+/-"))
tf.setText(tf.getText() + "-");
}
if (!s.equals("+/-")) {
if (s.equals("Backspace")) {
String str = tf.getText();
if (str.length() > 0)
tf.setText(str.substring(0, str.length() - 1));
} else if (s.equals("CE") || s.equals("C")) {
tf.setText("0");
start = true;
} else
tf.setText(tf.getText() + s);
}
switch(s.charAt(0)){
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
if(resultIndicate){
result=0;
data1=0;
}
Integer Int1=new Integer(s);
if(radixPointIndicate){
radixPointDepth=radixPointDepth/10;
data1=data1+(Int1.intValue())*radixPointDepth;
}
else{
data1=data1*10+(Int1.intValue());
}
Double displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
resultIndicate=false;
break;
case '+': case '-':case '*':case '/':case '=':
if(s.charAt(0)!='='&&resultIndicate){
prec=s.charAt(0);
resultIndicate=false;
}
else{
switch(prec){
case '+':
result=result+data1;
break;
case '-':
result=result-data1;
break;
case '*':
result=result*data1;
break;
case '/':
result=result/data1;
break;
}
}
radixPointIndicate=false;
radixPointDepth=1;
displayNumber=new Double(result);
tf.setText(displayNumber.toString());
if(s.charAt(0)!='='){
data1=0;
prec=s.charAt(0);
}
else{
resultIndicate=true;
}
break;
case '.':
radixPointIndicate=true;
break;
}
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
java实现计算器的退格功能_帮忙看下这个java做的计算器为什么实现不了退格和清零功能,3q...相关推荐
- java窗体 个人信心_帮忙写下代码java swing,个人信息实例
展开全部 本人急忙62616964757a686964616fe59b9ee7ad9431333332636264做的:有什么不合要求的请再告诉我: package show; import java ...
- java 俄罗斯方块消除整行_帮忙看下我的俄罗斯方块满行删除方法,为嘛一次只能删除1行。。...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //满行删除方法 void deleteFullLine(){ int full_line_num = 0; int k = 0; for (int i= ...
- 74ls163是同步清零吗_74LS163是具有同步清零功能的十六进制计数器,要
74LS163是具有同步清零功能的十六进制计数器,要想构成12进制计数器,采用清零的方法,应该在状态清零? 答:1100 Microsoft has emphasized time and time ...
- 时钟表24进制HTML,24进制数字电子钟时计器、译码显示电路 具有自动清零功能
设计要求 时间以24秒为一个周期,具有自动清零功能. 前言 24进制电子数字钟是实现具有24进制清零功能的电子钟,它主要由脉冲.10进制加法器74LS160.译码器74LS48.共阴极tisim9和P ...
- java创建ee项目_项目头像–下一个Java EE功能?
java创建ee项目 又是一年中的这个时候. 圣诞节假期快到了,Java Advent Calender不断填满. 今天要写我的惊喜帖子. 我是Markus ,也称为@myfear , 多年来我一直在 ...
- java 不能同时修改一条记录_【免费毕设】JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译)...
点击上方"蓝字"关注我们目录 系统设计 本章主要介绍离散数学题库管理软件中后台数据库的结构设计.数据库结构设计是继需求分析和确定开发工具后的重要阶段,是管理型软件开发设计的核心和重 ...
- java代码在jsp中怎么写_在jsp中写java代码
该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...
- Java和vue实现音乐播放器_躁!DJ 风格 Java 桌面音乐播放器
本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...
- java可用于开发两类程序_此内容适合初学者java基础知识 第一章
(一)Java 可用来生成两类程序:应用程序(Application). 小应用程序( Applet ) . (二)Java 既是一种解释执行的语言,也是一种编译执行的语言 (三)Java技术体系 1 ...
最新文章
- 浅述Oracle分布式事务概念
- R语言与概率统计(六) 主成分分析 因子分析
- 网页上的静止导航脚本
- 爬虫学习笔记(十)—— Scrapy框架(五):下载中间件、用户/IP代理池、settings文件
- 旋转图像—leetcode48
- NSURLConnection 下载数据 -- IOS(实例)
- SFTP上传下载文件
- rm命令修改为移动到回收站
- iOS 信号量解决-网络异步请求的数据同步返回问题
- 分享11个web前端开发实战项目案例+源码
- MATLAB 拟合曲线
- vep视频转换为mp4文件
- android仿微信选择器同时展示视频和图片
- confusion matix
- 可任意切换分频倍数的时钟分频电路
- 浏览器端反爬虫特征收集之字体检测
- nbiot教学实箱_基于NBIoT的一种智能环卫装置的设计与实现
- usb hid gadget驱动
- 市场调研你所不知道的几个关键点
- 支撑电子政务平台的CMS内容管理系统 1
热门文章
- 自动化测试 | 解决方案聚焦:如何使用PXI仪器进行高级数字测试
- DecimalFormat 基本使用(数字格式化)
- 那些年,我们一起写过的“单例模式”
- 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?
- 商科转码之路 | 算法岗寒假实习面经
- Broadcasts在Android7.0以及Android8.0中的变更
- 网络标准之:永远是1.0版本的MIME
- ArrayIndexOutOfBoundsException数组下标越界异常的解决过程
- 利用Python进行数据分析案例
- Sass(Scss)学习