import
java.awt.*;
import
java.awt.event.*;
class CalcFrame
extends Frame implements ActionListener
{
Button bNum[]=new Button[10];
Button bAdd,bSub,bMul,bDiv,bEql,bClr,b00;
TextField tScr;
String opn="";
int prv,cur;
CalcFrame()
{
super("Calculator");
setSize(250,350);
setLocation(300,200);
setResizable(false);
for(int i=0;i<10;i++)
{
bNum[i]=new
Button(String.valueOf(i));
bNum[i].setFont(new
Font("lucida console",Font.PLAIN,18));
bNum[i].setBackground(new Color(180,180,180));
}
bAdd=new Button("+");
bAdd.setFont(new Font("lucida
console",Font.PLAIN,18));
bAdd.setBackground(new
Color(170,170,255));
bSub=new Button("-");
bSub.setFont(new Font("lucida
console",Font.PLAIN,18));
bSub.setBackground(new
Color(170,170,255));
bMul=new Button("*");
bMul.setFont(new Font("lucida
console",Font.PLAIN,18));
bMul.setBackground(new
Color(170,170,255));
bDiv=new Button("/");
bDiv.setFont(new Font("lucida
console",Font.PLAIN,18));
bDiv.setBackground(new
Color(170,170,255));
bEql=new Button("=");
bEql.setFont(new Font("lucida
console",Font.PLAIN,18));
bEql.setBackground(new
Color(255,255,170));
bClr=new Button("Clr");
bClr.setFont(new Font("lucida
console",Font.PLAIN,18));
bClr.setBackground(new
Color(255,180,180));
b00=new Button("00");
b00.setFont(new Font("lucida
console",Font.PLAIN,18));
b00.setBackground(new
Color(180,180,180));
tScr=new TextField();
tScr.setEditable(false);
tScr.setFont(new Font("lucida
console",Font.BOLD|Font.ITALIC,35));
tScr.setBackground(Color.black);
tScr.setForeground(Color.white);
setLayout(new BorderLayout(5,5));
add(tScr,BorderLayout.NORTH);
Panel p=new Panel();
p.setLayout(new GridLayout(5,4,5,5));
p.add(new Label());
p.add(new Label());
p.add(new Label());
p.add(bClr);
p.add(bNum[7]);
p.add(bNum[8]);
p.add(bNum[9]);
p.add(bAdd);
p.add(bNum[4]);
p.add(bNum[5]);
p.add(bNum[6]);
p.add(bSub);
p.add(bNum[1]);
p.add(bNum[2]);
p.add(bNum[3]);
p.add(bMul);
p.add(bNum[0]);
p.add(b00);
p.add(bEql);
p.add(bDiv);
add(p,BorderLayout.CENTER);
for(int i=0;i<10;i++)
bNum[i].addActionListener(this);
b00.addActionListener(this);
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bEql.addActionListener(this);
bClr.addActionListener(this);
addWindowListener(new CalcWndAdapter());
}
public Insets getInsets()
{
return new Insets(40,10,10,10);
}
public void actionPerformed(ActionEvent ae)
{
String
op=((Button)(ae.getSource())).getLabel();
switch(op)
{
case "+":
if(opn=="")
{
prv=cur;
cur=0;
}
else
evaluate();
opn="+";
break;
case "-":
if(opn=="")
{
prv=cur;
cur=0;
}
else
evaluate();
opn="-";
break;
case "*":
if(opn=="")
{
prv=cur;
cur=0;
}
else
evaluate();
opn="*";
break;
case "/":
if(opn=="")
{
prv=cur;
cur=0;
}
else
evaluate();
opn="/";
break;
case "=":
if(opn!="")
{
evaluate();
opn="=";
}
break;
case "00":
cur*=100;
tScr.setText(cur+"");
break;
case "Clr":
cur=prv=0;
opn="";
tScr.setText("0");
break;
default:
int n;
try
{
n=Integer.parseInt(op);
}
catch(Exception
e)
{
n=0;
}
cur=cur*10+n;
tScr.setText(cur+"");
}
}
void evaluate()
{
switch(opn)
{
case"+":
prv+=cur;break;
case"-":
prv-=cur;break;
case"*":
prv*=cur;break;
case"/":
prv/=cur;break;
}
tScr.setText(prv+"");
cur=0;
}
}
class
CalcWndAdapter extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}
class calc
{
public static void main(String arg[])
{
CalcFrame cf=new CalcFrame();
cf.setVisible(true);
}
}
No comments:
Post a Comment