# How to Create A Basic Calculator In Java Applet In Advanced Way

### Share and Enjoy !

 Objective of this Approach:

In my last post I have shown How to Create A Basic Calculator In Java Applet.
That was too basic. The objective was to gain more knowledge on..

• how to work with action listener

In this post we are going in but advanced way..

For creating a calculator, we need to define the requirement first.. These requirements will keep on adding whenever required. We will be cleared about how prototype model works.
So will create a prototype first and keep implementing the calculator.

 Basic Requirements:

The requirements are ..

• There will be buttons with number 1 to 9
• There will be simple arithmetic operation button like-‘+’,’-‘,’*’ and ‘/’
• There will an equal(‘=’) button
• The resultant will be displayed in a text box.

 How to Code:

How to Create A Basic Calculator In Java Applet Here I have told the basics. Now in this post I will show how to code in a compact manner.
For adding button 0 to 9.

`for(int i=0;i<10;i++  ){button[i]=new Button(""+i);//Naming of the buttonadd(button[i]);//Adding the buttonsbutton[i].addActionListener(this);//adding action listeners to those buttons} `

Now on the action performed section-

`//This section is bit tricky here we are finding from which button //we are getting the requestString output=event.getActionCommand();char firstCharacter= output.charAt(0);if(Character.isDigit(firstCharacter))text1.setText(text1.getText()+ output);//if the incoming character is digit we need to append //with the existing digits    if(output.equals("+ "))   {   m=Integer.parseInt(text1.getText());   //taking the number provided as first number   key1="add";   //Setting the key based on that later we will    //perform operations   text1.setText("");   //Performing clean up activity   }   else if(output.equals("-"))   {   m=Integer.parseInt(text1.getText());   key1="min";   text1.setText("");   }   else if(output.equals("*"))   {    m=Integer.parseInt(text1.getText());   key1="mul";   text1.setText("");   }   else if(output.equals("/"))   {   m=Integer.parseInt(text1.getText());   key1="div";   text1.setText("");   }   else if(output.equals("C"))   {   //This is for clearing the screen.   text1.setText("");   } `

The working process of equals button.

• It will take the second number
• based on the key1  value it will determine the operation
• It should also check the divide rule..the second number should not be zero.It should print error if second number is zero.
• Later it should setup the resultant error.
`if(output.equals("=")){  n=Integer.parseInt(text1.getText());  //Getting the second number  if(key1=="add")  {  //if key is add then add operation will be performed   //on first number and second number  res=m+n;  }  if(key1=="min")  {                res=m-n;  }  if(key1=="mul")  {  res=m*n;  }  if(key1=="div")  {  //Checking if the second number is 0   //or not to avoid divided by zero error   if(n!=0)    res=m/n;   else   //if second number is zero then it will print error   res1="Error";  }    if(res1.equals(""))    //Setting up the result    text1.setText("" +res);    else    text1.setText("" +res1);}} `

 How real implementation will take place?:

Let me write the complete code here..

`import java.applet.*;import java.awt.*;import java.awt.event.*;public class calculator_updated extends Applet implements ActionListener{//Initialize the text fieldTextField text1;//Create array of buttonsButton button[]=new Button;//Create the buttons for special programsButton add,sub,mul,div,equalto,clr;String key1="",res1="";int m=0,res=0,n=0;public void init(){text1=new TextField(20);//craete a layoutGridLayout layout=new GridLayout(4,5);setLayout(layout);add(text1);//adding the textfieldfor(int i=0;i<10;i++  ){button[i]=new Button("" +i);//Naming of the buttonadd(button[i]);//Adding the buttonsbutton[i].addActionListener(this);//adding action listeners to those buttons}add=new Button("+" " + ");sub=new Button("+" "-");mul=new Button("+" "*");div=new Button("+" "/");equalto=new Button("+" "=");clr=new Button("+" "C");//Adding the special buttons and adding action listeners to itadd(add);add.addActionListener(this);add(sub);sub.addActionListener(this);add(mul);mul.addActionListener(this);add(div);div.addActionListener(this);add(equalto);equalto.addActionListener(this);add(clr);clr.addActionListener(this);}public void actionPerformed(ActionEvent event){//This section is bit tricky here we are finding from which button //we are getting the requestString output=event.getActionCommand();char firstCharacter= output.charAt(0);if(Character.isDigit(firstCharacter))text1.setText(text1.getText() +output);//if the incoming character is digit we need to append //with the existing digits    if(output.equals("+ "))   {   m=Integer.parseInt(text1.getText());   //taking the number provided as first number   key1="add";   //Setting the key based on that later we will    //perform operations   text1.setText("");   //Performing clean up activity   }   else if(output.equals("-"))   {   m=Integer.parseInt(text1.getText());   key1="min";   text1.setText("");   }   else if(output.equals("*"))   {    m=Integer.parseInt(text1.getText());   key1="mul";   text1.setText("");   }   else if(output.equals("/"))   {   m=Integer.parseInt(text1.getText());   key1="div";   text1.setText("");   }   else if(output.equals("C"))   {   //This is for clearing the screen.   text1.setText("");   }if(output.equals("=")){  n=Integer.parseInt(text1.getText());  //Getting the second number  if(key1=="add")  {  //if key is add then add operation will be performed   //on first number and second number  res=m+n;  }  if(key1=="min")  {                res=m-n;  }  if(key1=="mul")  {  res=m*n;  }  if(key1=="div")  {  //Checking if the second number is 0   //or not to avoid divided by zero error   if(n!=0)    res=m/n;   else   //if second number is zero then it will print error   res1="Error";  }    if(res1.equals(""))    //Setting up the result    text1.setText("" +res);    else    text1.setText("" +res1);}}}`

 How to Call this from HTML?

Well I have already explained this in my last post.Hence not going that much deep.
The HTML code will look like-

`<HTML><HEAD></HEAD><BODY><div ><applet width=300 height=300 code="calculator_updated.class"> </applet></APPLET></div></BODY></HTML> `
 Output??

I tried to perform 2+3 by clicking on the 2 , then 3 and lastly =
I have got 5.

### 1 thought on “How to Create A Basic Calculator In Java Applet In Advanced Way”

1. 