已结贴√

问题点数: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...相关推荐

  1. java窗体 个人信心_帮忙写下代码java swing,个人信息实例

    展开全部 本人急忙62616964757a686964616fe59b9ee7ad9431333332636264做的:有什么不合要求的请再告诉我: package show; import java ...

  2. java 俄罗斯方块消除整行_帮忙看下我的俄罗斯方块满行删除方法,为嘛一次只能删除1行。。...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //满行删除方法 void deleteFullLine(){ int full_line_num = 0; int k = 0; for (int i= ...

  3. 74ls163是同步清零吗_74LS163是具有同步清零功能的十六进制计数器,要

    74LS163是具有同步清零功能的十六进制计数器,要想构成12进制计数器,采用清零的方法,应该在状态清零? 答:1100 Microsoft has emphasized time and time ...

  4. 时钟表24进制HTML,24进制数字电子钟时计器、译码显示电路 具有自动清零功能

    设计要求 时间以24秒为一个周期,具有自动清零功能. 前言 24进制电子数字钟是实现具有24进制清零功能的电子钟,它主要由脉冲.10进制加法器74LS160.译码器74LS48.共阴极tisim9和P ...

  5. java创建ee项目_项目头像–下一个Java EE功能?

    java创建ee项目 又是一年中的这个时候. 圣诞节假期快到了,Java Advent Calender不断填满. 今天要写我的惊喜帖子. 我是Markus ,也称为@myfear , 多年来我一直在 ...

  6. java 不能同时修改一条记录_【免费毕设】JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译)...

    点击上方"蓝字"关注我们目录 系统设计 本章主要介绍离散数学题库管理软件中后台数据库的结构设计.数据库结构设计是继需求分析和确定开发工具后的重要阶段,是管理型软件开发设计的核心和重 ...

  7. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

  8. Java和vue实现音乐播放器_躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  9. java可用于开发两类程序_此内容适合初学者java基础知识 第一章

    (一)Java 可用来生成两类程序:应用程序(Application). 小应用程序( Applet ) . (二)Java 既是一种解释执行的语言,也是一种编译执行的语言 (三)Java技术体系 1 ...

最新文章

  1. 浅述Oracle分布式事务概念
  2. R语言与概率统计(六) 主成分分析 因子分析
  3. 网页上的静止导航脚本
  4. 爬虫学习笔记(十)—— Scrapy框架(五):下载中间件、用户/IP代理池、settings文件
  5. 旋转图像—leetcode48
  6. NSURLConnection 下载数据 -- IOS(实例)
  7. SFTP上传下载文件
  8. rm命令修改为移动到回收站
  9. iOS 信号量解决-网络异步请求的数据同步返回问题
  10. 分享11个web前端开发实战项目案例+源码
  11. MATLAB 拟合曲线
  12. vep视频转换为mp4文件
  13. android仿微信选择器同时展示视频和图片
  14. confusion matix
  15. 可任意切换分频倍数的时钟分频电路
  16. 浏览器端反爬虫特征收集之字体检测
  17. nbiot教学实箱_基于NBIoT的一种智能环卫装置的设计与实现
  18. usb hid gadget驱动
  19. 市场调研你所不知道的几个关键点
  20. 支撑电子政务平台的CMS内容管理系统 1

热门文章

  1. 自动化测试 | 解决方案聚焦:如何使用PXI仪器进行高级数字测试
  2. DecimalFormat 基本使用(数字格式化)
  3. 那些年,我们一起写过的“单例模式”
  4. 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?
  5. 商科转码之路 | 算法岗寒假实习面经
  6. Broadcasts在Android7.0以及Android8.0中的变更
  7. 网络标准之:永远是1.0版本的MIME
  8. ArrayIndexOutOfBoundsException数组下标越界异常的解决过程
  9. 利用Python进行数据分析案例
  10. Sass(Scss)学习