1. 程式人生 > >Java實現簡單計算器的加減乘除功能

Java實現簡單計算器的加減乘除功能

package guiawt;

import java.awt.BorderLayout;
import java.awt.Button;

import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;



public class Calcuate extends WindowAdapter implements ActionListener 
{
	String s ;
	TextField t;
	double num1;
	double num2;
	int x;
	
	public void windowClosing(WindowEvent e)  {System.exit(0);}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand().equals("C"))
		t.setText("");
		else if(e.getActionCommand().equals("+"))
		{
			s = t.getText();
			num1 = Double.parseDouble(s);
			t.setText("");
			x=0;
		}
		else if(e.getActionCommand().equals("-"))
		{
			s = t.getText();
			num1 = Double.parseDouble(s);
			t.setText("");
			x=1;
		}
		else if(e.getActionCommand().equals("*"))
	     {
	        	s=t.getText();
	        	num1=Double.parseDouble(s);
	        	t.setText("");
	        	x=2;
	      }
	     else if(e.getActionCommand().equals("%"))
	        {
	        	s=t.getText();
	        	num1=Double.parseDouble(s);
	        	t.setText("");
	        	x=3;
	        }
	     else if(e.getActionCommand().equals("="))
	     {
	    	 s = t.getText();
	    	 num2 = Double.parseDouble(s);
	    	 switch(x)
	    	 {
	    	 case  0 : t.setText("" + (num1 + num2));break;
	    	 case  1 : t.setText("" + (num1 - num2));break;
	    	 case  2 : t.setText("" + (num1 * num2));break;
	    	 case  3 : t.setText("" + (num1 % num2));break;
	    	 }
	    	
	     }
	     else if(e.getActionCommand().equals("."))
	     {
	    	 if(t.getText().trim().indexOf('.')!=-1){}
	    	 else
	    	 {
	    		 s = t.getText();
	    		 s = s + e.getActionCommand();
	    		 t.setText(s);
	    		 
	    	 }
	     }
		
	     else
	     {
	    	 String s = t.getText();
	    	 s = s + e.getActionCommand();
	    	 t.setText(s);
	     }
		
		
	}
	public Calcuate()
	{
		Frame f = new Frame("我的計算器");
				
		t = new TextField();
		f.add(t,BorderLayout.NORTH);
		f.setSize(300,270);
		Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
		
		f.addWindowListener(this);
		
		 b0= new Button("MC");
		 b1= new Button("MR");
		 b2= new Button("MS");
		 b3= new Button("M+");
		 b4= new Button("M-");
		 b5= new Button("<-");
		 b6= new Button("CE");
		 b7= new Button("C");
		 b8= new Button("+-");
		 b9= new Button("sqrt");
	     b10=new Button("+");
	     b11=new Button("-");
	     b12=new Button("*");
	     b13=new Button("/");
	     b14=new Button("%");
	     b15=new Button(".");
	     b16=new Button("1/x");
	     b17=new Button("=");
	     Button b[]=new Button[10];
	     for(int i=0;i<b.length;i++)
	 	    b[i]=new Button(""+i);
	     
	     
	     b[0].addActionListener(this);
	     b[1].addActionListener(this);
	      b[2].addActionListener(this);
	       b[3].addActionListener(this);
	        b[4].addActionListener(this);
	         b[5].addActionListener(this);
	          b[6].addActionListener(this);
	           b[7].addActionListener(this);
	            b[8].addActionListener(this);
	             b[9].addActionListener(this);
	             b7.addActionListener(this);
	             b10.addActionListener(this);
	             b11.addActionListener(this);
	             b12.addActionListener(this);
	             b14.addActionListener(this);
	             b17.addActionListener(this);
	             b15.addActionListener(this);
	     
	    
	       Panel p = new Panel();
	       p.setLayout(new GridLayout(5,5,5,5));
	       p.add(b0);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(b[7]);p.add(b[8]);p.add(b[9]);p.add(b13);p.add(b14);
		    p.add(b[4]);p.add(b[5]);p.add(b[6]);p.add(b12);p.add(b16);
		    p.add(b[1]);p.add(b[2]);p.add(b[3]);p.add(b11);p.add(b10);
	     f.add(p,BorderLayout.CENTER);
	     
	     Panel p1 = new Panel();
	     p1.setLayout(new GridLayout(1,3,5,5));
	     p1.add(b[0]);p1.add(b15);p1.add(b17);
		 f.add(p1,BorderLayout.SOUTH);
		 
		 f.setVisible(true);
	}
	
	public static void main(String[] args)
	{
		Calcuate cc = new Calcuate();
		
	}
	
}