计算器实现java详细代码

package calculater1;
import java.awt.*;
import javax.swing.*;

public class jiemian extends JFrame{
	JPanel jp=new JPanel();
	JPanel jp1=new JPanel();
	JButton b0=new JButton("0");
	JButton b1=new JButton("1");
	JButton b2=new JButton("2");
	JButton b3=new JButton("3");
	JButton b4=new JButton("4");
	JButton b5=new JButton("5");
	JButton b6=new JButton("6");
	JButton b7=new JButton("7");
	JButton b8=new JButton("8");
	JButton b9=new JButton("9");
	JButton b10=new JButton(".");
	JButton b11=new JButton("+");
	JButton b12=new JButton("-");
	JButton b13=new JButton("*");
	JButton b14=new JButton("/");
	JButton b15=new JButton("=");
	JButton b16=new JButton("  Clear  ");
	JButton b17=new JButton(" BackSace ");
	JTextField tf=new JTextField(14);
	public jiemian(){
		setTitle("计算器");
		tf.setEditable(false);
		setLayout(new BorderLayout());
		jp.setLayout(new GridLayout(4,4));
		jp.add(b7);
		jp.add(b8);
		jp.add(b9);
		jp.add(b14);
		jp.add(b4);
		jp.add(b5);
		jp.add(b6);
		jp.add(b13);
		jp.add(b1);
		jp.add(b2);
		jp.add(b3);
		jp.add(b12);
		jp.add(b0);
		jp.add(b10);
		jp.add(b15);
		jp.add(b11);
		jp1.add(tf);
		jp1.add(b16);
		jp1.add(b17);
		add(jp1,BorderLayout.NORTH);
		add(jp,BorderLayout.CENTER);
		setSize(300,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	
}

package calculater1;

import java.awt.event.*;
import calculater1.jiemian;

public class test implements ActionListener{
	jiemian a=new jiemian();
	String s;
	char c;
	double m,n;
	int i=0;//状态变量 值为0表示首次输入;为1表示非首次输入
	public static void main(String[] args) {
		test t=new test();
		t.addjsq();

	}
	public void addjsq(){
		a.b0.addActionListener(this);
		a.b1.addActionListener(this);
		a.b2.addActionListener(this);
		a.b3.addActionListener(this);
		a.b4.addActionListener(this);
		a.b5.addActionListener(this);
		a.b6.addActionListener(this);
		a.b7.addActionListener(this);
		a.b8.addActionListener(this);
		a.b9.addActionListener(this);
		a.b10.addActionListener(this);
		a.b11.addActionListener(this);
		a.b12.addActionListener(this);
		a.b13.addActionListener(this);
		a.b14.addActionListener(this);
		a.b15.addActionListener(this);
		a.b16.addActionListener(this);
		a.b17.addActionListener(this);
	}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==a.b0){
			if(i==0){
				a.tf.setText("0");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"0");
				}else {
					if(s.trim().indexOf(".")==-1){
						a.tf.setText(s);
					}else 
						a.tf.setText(s+"0");
				}
			}
		}
		else if(e.getSource()==a.b1){
			if(i==0){
				a.tf.setText("1");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"1");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("1");
					else 
						a.tf.setText(s+"1");
				}
			}
		}
		else if(e.getSource()==a.b2){
			if(i==0){
				a.tf.setText("2");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"2");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("2");
					else 
						a.tf.setText(s+"2");
				}
			}
		}
		else if(e.getSource()==a.b3){
			if(i==0){
				a.tf.setText("3");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"3");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("3");
					else 
						a.tf.setText(s+"3");
				}
			}
		}
		else if(e.getSource()==a.b4){
			if(i==0){
				a.tf.setText("4");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"4");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("4");
					else 
						a.tf.setText(s+"4");
				}
			}
		}
		else if(e.getSource()==a.b5){
			if(i==0){
				a.tf.setText("5");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"5");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("5");
					else 
						a.tf.setText(s+"5");
				}
			}
		}
		else if(e.getSource()==a.b6){
			if(i==0){
				a.tf.setText("6");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"6");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("6");
					else 
						a.tf.setText(s+"6");
				}
			}
		}
		else if(e.getSource()==a.b7){
			if(i==0){
				a.tf.setText("7");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"7");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("7");
					else 
						a.tf.setText(s+"7");
				}
			}
		}
		else if(e.getSource()==a.b8){
			if(i==0){
				a.tf.setText("8");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"8");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("8");
					else 
						a.tf.setText(s+"8");
				}
			}
		}
		else if(e.getSource()==a.b9){
			if(i==0){
				a.tf.setText("9");
			    i=1;
			}
			else {
				s=a.tf.getText();
				if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
					a.tf.setText(s+"9");
				}else {
					if(s.trim().indexOf(".")==-1)
						a.tf.setText("9");
					else 
						a.tf.setText(s+"9");
				}
			}
		}
		else if(e.getSource()==a.b10){
			if(i==0){
			a.tf.setText("0.");
			i=1;
			}
			else {
				s=a.tf.getText();
				if(s.trim().indexOf(".")==-1)
					a.tf.setText(s+".");
				else 
					a.tf.setText(s);
				
			}
		}
		else if(e.getSource()==a.b11){
			i=0;
			m=Double.parseDouble(a.tf.getText());
			c='+';
			a.tf.setText(a.tf.getText()+"+");
		}
		else if(e.getSource()==a.b12){
			i=0;
			m=Double.parseDouble(a.tf.getText());
			c='-';
			a.tf.setText(a.tf.getText()+"-");
		}
		else if(e.getSource()==a.b13){
			i=0;
			m=Double.parseDouble(a.tf.getText());
			c='*';
			a.tf.setText(a.tf.getText()+"*");
		}
		else if(e.getSource()==a.b14){
			i=0;
			m=Double.parseDouble(a.tf.getText());
			c='/';
			a.tf.setText(a.tf.getText()+"/");
		}
		else if(e.getSource()==a.b15){
			switch(c){
			case '+':{
				double result=m+Double.parseDouble(a.tf.getText());
				a.tf.setText(result+"");
				i=0;
				s="";
				break;
			}
			case '-':{
				double result=m-Double.parseDouble(a.tf.getText());
				a.tf.setText(result+"");
				i=0;
				s="";
				break;
			}
			case '*':{
				double result=m*Double.parseDouble(a.tf.getText());
				a.tf.setText(result+"");
				i=0;
				s="";
				break;
			}
			case '/':{
				double result=m/Double.parseDouble(a.tf.getText());
				a.tf.setText(result+"");
				i=0;
				s="";
				break;
			}
		  }
		}
		else if(e.getSource()==a.b16){
			s="";
			i=0;
			c=' ';
			m=n=0;
			a.tf.setText("");
		}
		else if(e.getSource()==a.b17){
			s=a.tf.getText();
			int j=s.length();
			if(j>1){
				a.tf.setText(s.substring(0,j-1));
			}
			else {
				a.tf.setText("");
				i=0;
			}
		}
	}
}


在这里插入图片描述

发布了36 篇原创文章 · 获赞 61 · 访问量 2883

猜你喜欢

转载自blog.csdn.net/Miracle1203/article/details/103718541
今日推荐