Spread the love

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

Spread the love

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 add buttons
  • how to add controls
  • 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 button
add(button[i]);
//Adding the buttons
button[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 request
String 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 field
TextField text1;
//Create array of buttons
Button button[]=new Button[10];
//Create the buttons for special programs
Button 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 layout
GridLayout layout=new GridLayout(4,5);
setLayout(layout);
add(text1);
//adding the textfield
for(int i=0;i<10;i++ )
{
button[i]=new Button("" +i);
//Naming of the button
add(button[i]);
//Adding the buttons
button[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 it
add(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 request
String 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.

READ  Class Process In Java

READ  Class InputStream in Java




Spread the love
Animesh Chatterjeehttps://techtravelhub.com/
I am the founder and owner of the blog - TechTravelHub.com, always love to share knowledge on test automation,tools,techniques and tips.I am a passionate coder of Java and VBScript.I also publish articles on Travel ideas and great honeymoon destinations.Apart from these, I am a gear-head,love to drive across India. I have shared lots of articles here on How to travel several parts of India.Customization of cars aka car modification is my another hobby.Get in touch with me on ani01104@gamil.com

Related Articles

Learn Quickly About DevOps Tools in a Fast and Efficient Manner

Introduction to DevOps tools DevOps tools are a collection of a set...

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Recent Posts

Learn Quickly About DevOps Tools in a Fast and Efficient Manner

Introduction to DevOps tools DevOps tools are a collection of...

How to Collaborate between Development and Operations Team Fast and Effectively

Collaborate between Development and Operations Teams are the key...

Learn How to Use Jacoco Java code Coverage

Introduction to Jacoco Jacoco provides a wide range of coverage(analysis...

EDITOR PICKS


Spread the love