PROGRAM TO MAKE A CALCULATOR USING FRAME
import [Link].*; import [Link].*; public class calci extends Frame implements ActionListener{ TextField t; Button btn[]=new Button[10]; Button add,mul,div,sub,eq,clr,clr1; long a= Long.MAX_VALUE,b=Long.MAX_VALUE,r; String op="",s="",ac=""; boolean f=false,f1=false; public calci() { setLayout(new BorderLayout(0,4)); GridLayout g=new GridLayout(4,5,4,4); t=new TextField(30); add(t,[Link]); Panel p=new Panel(); [Link](g); for(int i=9;i>0;i--) { btn[i]=new Button(""+i); [Link](btn[i]); btn[i].addActionListener(this); } btn[0]=new Button("0"); btn[0].addActionListener(this); add=new Button("+"); sub=new Button("-"); div=new Button("/"); mul=new Button("*"); eq=new Button("="); clr=new Button("clr"); clr1=new Button("allclr");
[Link](add,3); [Link](sub,7); [Link](mul,11); [Link](clr,12); [Link](btn[0],13); [Link](eq,14); [Link](div,15); add(clr1,[Link]); add(p,[Link]); [Link](this); [Link](this); [Link](this); [Link](this); [Link](this); [Link](this); [Link](this); [Link](this); [Link](false); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent w) { [Link](0); } });
public void cal() //calculate funcn { if(a== Long.MAX_VALUE ||b== Long.MAX_VALUE) //checking invalid input { s=" Wrong Expression ";r=-1;} else { if(op=="+") //add r=a+b; else if(op=="-") //sub r=a-b; else if(op=="/") //div r=a/b;
else r=a*b; //multiply s=""+r; //initialising string to result a=Long.MAX_VALUE;b= Long.MAX_VALUE; //clearing inputs
} public void actionPerformed(ActionEvent e) { ac=[Link](); if(ac=="+"||ac=="-"||ac=="/"||ac=="*") //if any operator pressed { if(f1) //if op pressed after an = { f1=false; s=""; [Link](s); op=ac; } else if(f) //op pressed after an op { if(s=="") { //obtaining second operand b=-1; } else b=[Link](s); cal(); a=r; [Link](s); //displaying results s=""; op=ac; } else { op=ac; f=true; //setting flag if consecutive operand key pressed if(s=="") a= Long.MAX_VALUE; //obtaining first operand else a=[Link](s);
[Link](""); //clearing text field s=""; } else if("=".equals(ac)) { f=false; f1=true; //setting flag that an = is pressed if(s=="") //obtaining second operand b= Long.MAX_VALUE; else b=[Link](s); cal(); a=r; [Link](s); //displaying result s=""; } else if("allclr".equals(ac)) //clearing everything { s=""; [Link](s); f=false;f1=false; } else if(ac=="clr") //clearing current value { if(f1) a= Long.MAX_VALUE; s=""; [Link](s); } else //inputting nos { f1=false; s=s+ac; [Link](s); } repaint(); }
} public static void main(String arg[]) { calci c=new calci();
} }
[Link](true); [Link](200, 250); [Link](false);