Java计算器工作如下_分享一个java写的简单计算器

一个简单的计算器,只实现了加、减、乘、除等简单功能,界面如下所示

1335431270_9095.jpg

原代码如下:

package UI;

//计算器

import java.awt.BorderLayout;

import java.awt.GridLayout;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.JTextField;

public class Calculator1 implements ActionListener{

private JButton jb=new JButton();//按钮

private JTextField jtf=new JTextField();//窗体

private String oldString="0";//记录老数据

private String newString="0";//记录新数据

private String operater="";//记录运算符

private int count1=0;//等号的数量

private int count2=0;//运算符的数量

private boolean append=true;//在操作数据时用于判断追加或替换

private boolean m=true;

private boolean n=true;

public Calculator1(){

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

jf.setResizable(false);

BorderLayout border=new BorderLayout();

jtf.setEditable(false);

jf.add(jtf,BorderLayout.NORTH);

JPanel jp=new JPanel();

GridLayout gl=new GridLayout(5,4);

jp.setLayout(gl);

String[] str={"Backs","CE","C","+","7","8","9","-","4","5","6","*","1","2","3","/","0",".","+/-","="};

for(int i=0;i

jb=new JButton(str[i]);

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

jp.add(jb);

}

jf.add(jp);

jf.pack();//自动调整窗口大小

jf.setLocation(300, 200);//显示位置

jf.setVisible(true);//可以显示

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭后停止工作

}

public void actionPerformed(ActionEvent e) {

String com=e.getActionCommand();

if(com.matches("^\\d$")){

if(append&&m){

String text=jtf.getText();

jtf.setText(text+com);

}else if(!append&&m){

jtf.setText(com);

append=true;

}

}else if("+-*/".indexOf(com)!=-1){

count2++;

append=false;

if(count1==0&&count2>1){

newString=jtf.getText();

double d1=Double.parseDouble(oldString);

double d2=Double.parseDouble(newString);

double d=0;

if(operater.matches("\\+")){

d=d1+d2;

}else if(operater.matches("\\-")){

d=d1-d2;

}else if(operater.matches("\\*")){

d=d1*d2;

}else{

if(d2==0){

jtf.setText("除数不能为零");

m=false;

}else{

d=d1/d2;

}

}

if(m){

jtf.setText(d+"");

}

append=false;

}

count1=0;

oldString=jtf.getText();

operater=com;

}else if(com.matches("^=$")){

count1++;

count2=0;

newString=jtf.getText();

double d1=Double.parseDouble(oldString);

double d2=Double.parseDouble(newString);

double d=0;

if(operater.matches("\\+")){

d=d1+d2;

}else if(operater.matches("\\-")){

d=d1-d2;

}else if(operater.matches("\\*")){

d=d1*d2;

}else{

if(d2==0){

jtf.setText("除数不能为零");

m=false;

}else{

d=d1/d2;

}

}

if(m){

jtf.setText(d+"");

}

append=false;

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

String temp=jtf.getText();

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

jtf.setText(temp+".");

append=true;

}

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

String temp=jtf.getText();

if(temp.startsWith("-")){

jtf.setText(temp.substring(1));

}else{

jtf.setText("-"+temp);

}

}else if("C".equals(com)){

jtf.setText("0");

newString="0";

oldString="0";

count1=0;

count2=0;

append=false;

m=true;

}else if("CE".equals(com)){

newString="0";

jtf.setText(oldString);

append=false;

m=true;

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

String temp=jtf.getText();

char[] c=temp.toCharArray();

jtf.setText(temp.substring(0,c.length-1));

}

}

public static void main(String[] args) {

Calculator1 c=new Calculator1();

}

}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值