博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用java代码写的简易计算器(可以实现基本的加减乘除功能)
阅读量:4958 次
发布时间:2019-06-12

本文共 3118 字,大约阅读时间需要 10 分钟。

package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{	private int m1=0,n=0;//	private double m2=0;//运算的数	private int flag=0;	JFrame f;	JPanel p1,p2,p3;	JTextField t;	JButton b1[]=new JButton[18];	String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};	public Calcular3(){		f=new JFrame("计算器");		t=new JTextField(35);		p1=new JPanel();		p2=new JPanel();		p3=new JPanel();		f.setBounds(100, 100, 400, 200);		f.add(p1,BorderLayout.NORTH);		f.add(p2,BorderLayout.CENTER);		f.add(p3,BorderLayout.EAST);		p2.setLayout(new GridLayout(5,3));		p3.setLayout(new GridLayout(4,1));		p1.add(t);		for(int i=0;i<14;i++) {			b1[i]=new JButton(b[i]);			p2.add(b1[i]);			b1[i].addActionListener(this);		}		for(int i=14;i<18;i++) {			b1[i]=new JButton(b[i]);			p3.add(b1[i]);			b1[i].addActionListener(this);		}		/*for(int i=0;i<18;i++) {			b1[i].addActionListener(this);		}*/		f.setVisible(true);	}//实现接口的方法	public void mouseClicked(MouseEvent e) {			}	public void mousePressed(MouseEvent e) {			}	public void mouseReleased(MouseEvent e) {			}	public void mouseEntered(MouseEvent e) {			}	public void mouseExited(MouseEvent e) {			}	public void actionPerformed(ActionEvent e) {		String str="";		int i;		for(i=0;i<=9;i++) {			if(e.getSource()==b1[i]) {				if(i==9) {					n=n*10;				}else {					n=n*10+i+1;				}					str=String.valueOf(n);//整形n转换成字符串str				t.setText(str);//显示到文本框上			}		}		for(i=14;i<18;i++) {//+、-、*、/			if(e.getSource()==b1[i]) {//匹配运算符				m1=Integer.parseInt(t.getText());				if(flag==15) {					m2=m1+m2;				}else if(flag==16) {					m2=m1-m2;				}else if(flag==17) {					m2=m1*m2;				}else if(flag==18) {					m2=m1/m2;				}else m2=m1;//若无连续的运算符运算,保存当前数据到m2				if(i==14)  flag=15;				else if(i==15)  flag=16;				else if(i==16)  flag=17;				else flag=18;				str=String.valueOf(b[i]);				t.setText(str);//显示到文本框上				n=0;//还原,记录下次数据				break;//找到匹配数据退出循环			}		}		if(e.getSource()==b1[13]) {//=			m1=Integer.parseInt(t.getText());			if(flag==15) {				m2=m2+m1;			}else if(flag==16) {				m2=m2-m1;			}else if(flag==17) {				m2=m2*m1;			}else if(flag==18) {				m2=m2/m1;			}else m2=m1;			str=String.valueOf(m2);			t.setText(str);//显示到文本框上			n=0;//还原,记录下次数据			flag=0;//flag还原0,表明没有未处理的运算符		}		if(e.getSource()==b1[10]) {//各变量变为0  清空			m1=0;			m2=0;			flag=0;			n=0;			t.setText("0");//显示到文本框上		}		if(e.getSource()==b1[11]) {//退格			m1=(int)(Double.parseDouble(t.getText())/10);			n=m1;			str=String.valueOf(m1);			t.setText(str);		}		if(e.getSource()==b1[12]) {//小数点			m1=Integer.parseInt(t.getText());			str=String.valueOf(m1+b[12]);			t.setText(str);//显示到文本框上			int j=0;			for(i=0;i<=9;i++) {				if(e.getSource()==b1[i]) {					j++;					m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);					str=String.valueOf(m1+m2);					t.setText(str);//显示到文本框上				}			}					}	}//主函数	public static void main(String[] args) {		new  Calcular3();	}}

  

转载于:https://www.cnblogs.com/pxy0821/p/11564179.html

你可能感兴趣的文章
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
【译】Hello Kubernetes快速交互实验手册
查看>>
appium(13)- server config
查看>>
图形学噪声解析
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
织梦首页TAG标签页的仿制
查看>>
织梦系统调用点击次数代码优化提高页面打开速度
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
通过被调函数改变主调函数的值
查看>>
android 数据存储之SQLite
查看>>
java 对象的序列化与反序列化
查看>>
luogu最长连号
查看>>
二叉树、树、森林
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
解决package jdk1.8-2000:1.8.0_171-fcs.x86_64 is already installed问题
查看>>
XPath Helper和XPath语法
查看>>
Halcon学习(八)文本操作
查看>>