用java代码写的简易计算器(可以实现基本的加减乘除功能)

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值