Sunday, December 20, 2009

Calculator

import java.io.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*


*/
public class Calculator extends Applet implements ActionListener
{
Button CE;
Button Dot=new Button(".");
Button Add=new Button(" + ");
Button Sub=new Button(" - ");
Button Mul=new Button(" * ");
Button Div=new Button(" / ");
Button Eql=new Button(" = ");
Button Sqrt=new Button("v");
TextField DataInput;
boolean Clear=false;
boolean Result=false;
String Num="";
String IP1="";
String IP2="";
String Res="";
String Op="";
Double Oper1;
Double Oper2;
Double ResInt;

public void init()
{

DataInput=new TextField(20);

Button But0=new Button(" 0 ");
Button But1=new Button(" 1 ");
Button But2=new Button(" 2 ");
Button But3=new Button(" 3 ");
Button But4=new Button(" 4 ");
Button But5=new Button(" 5 ");
Button But6=new Button(" 6 ");
Button But7=new Button(" 7 ");
Button But8=new Button(" 8 ");
Button But9=new Button(" 9 ");
CE=new Button(" CE ");
But0.addActionListener(this);
But1.addActionListener(this);
But2.addActionListener(this);
But3.addActionListener(this);
But4.addActionListener(this);
But5.addActionListener(this);
But6.addActionListener(this);
But7.addActionListener(this);
But8.addActionListener(this);
But9.addActionListener(this);
Dot.addActionListener(this);
Add.addActionListener(this);
Sub.addActionListener(this);
Mul.addActionListener(this);
Div.addActionListener(this);
Eql.addActionListener(this);
CE.addActionListener(this);
Sqrt.addActionListener(this);
add(DataInput);

add(But0);
add(But1);
add(But2);
add(But3);
add(But4);
add(But5);
add(But6);
add(But7);
add(But8);
add(But9);
add(Dot);
add(Add);
add(Sub);
add(Mul);
add(Div);
add(Eql);
add(CE);
add(Sqrt);
setLayout(null);

DataInput.setBounds(20,20,260,20);

But0.setBounds(20,50,30,30);
But1.setBounds(60,50,30,30);
But2.setBounds(100,50,30,30);
But3.setBounds(140,50,30,30);
But4.setBounds(180,50,30,30);

But5.setBounds(20,100,30,30);
But6.setBounds(60,100,30,30);
But7.setBounds(100,100,30,30);
But8.setBounds(140,100,30,30);
But9.setBounds(180,100,30,30);
Dot.setBounds(70,150,70,30);
Add.setBounds(230,50,50,30);
Sub.setBounds(230,100,50,30);
Mul.setBounds(230,150,50,30);
Div.setBounds(280,100,50,30);
Eql.setBounds(280,150,50,30);
CE.setBounds(280,50,50,30);
Sqrt.setBounds(150,150,70,30);
}

public void paint(Graphics Grp)
{

setBackground(Color.gray);
CE.setForeground(Color.blue);
Add.setForeground(Color.red);
Sub.setForeground(Color.red);
Mul.setForeground(Color.red);
Div.setForeground(Color.red);
Eql.setForeground(Color.red);
Dot.setForeground(Color.blue);

if(Clear==true)
{
DataInput.setText("");
Clear=false;
if(Result==true)
{
DataInput.setText(Res);
Result=false;
}
}
else
DataInput.setText(DataInput.getText()+Num);
}


public void actionPerformed(ActionEvent Ae)
{
if(Ae.getActionCommand().equals(" 0 "))
{
Num="0";
repaint();
}
if(Ae.getActionCommand().equals(" 1 "))
{
Num="1";
repaint();
}
if(Ae.getActionCommand().equals(" 2 "))
{
Num="2";
repaint();
}
if(Ae.getActionCommand().equals(" 3 "))
{
Num="3";
repaint();
}
if(Ae.getActionCommand().equals(" 4 "))
{
Num="4";
repaint();
}
if(Ae.getActionCommand().equals(" 5 "))
{
Num="5";
repaint();
}
if(Ae.getActionCommand().equals(" 6 "))
{
Num="6";
repaint();
}
if(Ae.getActionCommand().equals(" 7 "))
{
Num="7";
repaint();
}
if(Ae.getActionCommand().equals(" 8 "))
{
Num="8";
repaint();
}
if(Ae.getActionCommand().equals(" 9 "))
{
Num="9";
repaint();
}
if(Ae.getActionCommand().equals("."))
{
Num=".";
repaint();
}
if(Ae.getActionCommand().equals(" CE "))
{
Clear=true;
IP1="";
IP2="";
Res="";
repaint();
}
if(Ae.getActionCommand().equals(" + "))
{
IP1=DataInput.getText();
Op="+";

Clear=true;
repaint();
}
if(Ae.getActionCommand().equals(" - "))
{
IP1=DataInput.getText();
Op="-";

Clear=true;
repaint();
}
if(Ae.getActionCommand().equals(" * "))
{
IP1=DataInput.getText();
Op="*";

Clear=true;
repaint();
}
if(Ae.getActionCommand().equals(" / "))
{
IP1=DataInput.getText();
Op="/";

Clear=true;
repaint();
}
if(Ae.getActionCommand().equals("v"))
{
IP1=DataInput.getText();
Op="v";

Clear=true;
repaint();
}
if(Ae.getActionCommand().equals(" = "))
{
IP2=DataInput.getText();
double I1,I2;
double ROut=0;

I1=Oper1.parseDouble(IP1);
I2=Oper2.parseDouble(IP2);

if(Op=="+")
ROut=I1+I2;
if(Op=="-")
ROut=I1-I2;
if(Op=="*")
ROut=I1*I2;
if(Op=="/")
ROut=I1/I2;

ResInt=new Double(ROut);
Res=ResInt.toString();

IP1=IP2;

Result=true;
Clear=true;
repaint();
}
else if(Ae.getActionCommand().equals("v"))
{
double I1;
double ROut=0;
I1=Oper1.parseDouble(IP1);
if(Op=="v")
ROut=Math.sqrt(I1);
ResInt=new Double(ROut);
Res=ResInt.toString();

IP1=IP2;

Result=true;
Clear=true;
repaint();
}
}

}

No comments:

Post a Comment