Updated April 12, 2023
Introduction to Calculator in Java
Calculator in Java is used to calculate addition, subtraction, multiplication, division, modulus, power of numbers, etc. We can do this calculator operation using a plain Java switch case and using Java swing standalone application. In Plain Java calculator operation, we don’t need any extra libraries, but we must require java.awt.event in the case of swing application.*, javax.swing.*, java.awt.*packages.
Methods
Swing methods for the calculator:
- add(Component component): It is used to add the component to the container.
- setSize(int x, int y): It is used to set the size of the container as per given dimensions.
- setText(String string): It is used to set the string text.
- getText(): It is used to get the text of the container.
- addActionListenerListener(ActionListener actionListener): It is used to set the action to the container.
- setBackground(Color color) : It is used to set the background color.
How to Create a Calculator in Java?
We can create a calculator in 2 ways:
- Using the Switch Case Statement.
- Using Swing graphics.
1. Using the Switch Case Statement
Step 1: User enters the character for which operation wants to perform like “+”, “-”, “*”, “/”, “%”, “^” etc.
Step 2: Within the switch case, we have implemented logic for each character.
Step 3: Based on character operation performed like addition, subtraction, multiplication, division, modulus (finds remainder) and power of the number.
Syntax:
public class CalculatorSwitchCase
{
//Ask input from user
switch(character)
{
case '+'://addition operation
case '-'://subtraction operation
case '*'://multiplication operation
case '/'://division operation
case '%'://modulus operation
case '^'://power operation
}
//display output
}
Example #1 – Switch Case Calculator Functionality
Code:
package com.calculator;
import java.util.Scanner;
public class CalculatorSwitchCase {
public static void main(String[] args) {
// declaring varibales
double firstNumber, secondNumber;
double result_operation_output;
// Creating scanner for object for allow input
Scanner scannerObject = new Scanner(System.in);
do {
System.out.println("==============================================");
System.out.println("1. + for ADDITION");
System.out.println("2. - for SUBTRACTION");
System.out.println("3. * for MULTIPLICATION");
System.out.println("5. 4. / for DIVISION");
System.out.println("6. % for REMAINDER");
System.out.println("7. ^ for POWER");
System.out.println("8. Q for QUIT");
System.out.println("==============================================");
// ask the user to enter first number
System.out.print("Enter your first number:\n");
firstNumber = scannerObject.nextDouble();
// ask the user to enter second number
System.out.print("Enter your second number:\n");
secondNumber = scannerObject.nextDouble();
System.out.print("Enter an operators like (+, -, *, /, %, ^) only:\n ");
// storing the operator in char object
char operator = scannerObject.next().charAt(0);
switch (operator) {
case '+':
result_operation_output = firstNumber + secondNumber;
break;
case '-':
result_operation_output = firstNumber - secondNumber;
break;
case '*':
result_operation_output = firstNumber * secondNumber;
break;
case '/':
result_operation_output = firstNumber / secondNumber;
break;
case '%':
result_operation_output = firstNumber % secondNumber;
break;
case '^':
result_operation_output = Math.pow(firstNumber, secondNumber);
break;
case 'Q':
System.exit(0);
default:
System.out.printf("Please enter specified operator only");
return;
}
System.out.println(firstNumber + " " + operator + " " + secondNumber + " is : " + result_operation_output);
} while (result_operation_output != 'Q');
scannerObject.close();
}
}
Output:
o/p for addition and subtraction
o/p for multiplication and division
o/p for remainder and power
2. Using Swing Graphics
Step1: Create a class and extends it from JFrame, ActionerListener.
Step2: Creating buttons for numbers from 0-9 and character buttons like +, -, *, *, % etc.
Step3: Write an Action listener for all the buttons.
Step4: Add all these components to the Screen.
Example 2 – Swing Calculator
Code:
package com.calculator.swing;
//Java program to create a simple calculator
//with basic +, -, /, * using java swing elements
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
@SuppressWarnings("serial")
public class CalculatorSwing extends JFrame implements ActionListener {
// create a frame
static JFrame frameToDisplay;
// create a textfield
static JTextField labeTextField;
// it store the operands and operators
String string0, string1, string2;
// constructor
CalculatorSwing() {
string0 = string1 = string2 = "";
}
// main function to java application
public static void main(String args[]) {
// create the frame to display the screen
frameToDisplay = new JFrame("My Calculator");
try {
// used to set the look and feel for the application
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception exception) {
System.err.println(exception.getMessage());
}
// create the class object
CalculatorSwing calculatorSwing = new CalculatorSwing();
// create text field
labeTextField = new JTextField(16);
// set to the non editable
labeTextField.setEditable(false);
// declaring numbers buttons and operators buttons
JButton button_0, button_1, button_2, button_3, button_4, button_5, button_6, button_7, button_8, button_9,
button_add, button_subtract, button_div, button_mul, button_dot, button_equal1, button_equal2;
// creating numbers buttons
button_0 = new JButton("0");
button_1 = new JButton("1");
button_2 = new JButton("2");
button_3 = new JButton("3");
button_4 = new JButton("4");
button_5 = new JButton("5");
button_6 = new JButton("6");
button_7 = new JButton("7");
button_8 = new JButton("8");
button_9 = new JButton("9");
// creating equals buttons
button_equal2 = new JButton("=");
// creating operators like +,-,*,/ buttons
button_add = new JButton("+");
button_subtract = new JButton("-");
button_div = new JButton("/");
button_mul = new JButton("*");
button_equal1 = new JButton("C");
// creating dot(.) buttons
button_dot = new JButton(".");
// creating panel
JPanel jPanel = new JPanel();
// adding action listeners to the buttons
button_mul.addActionListener(calculatorSwing);
button_div.addActionListener(calculatorSwing);
button_subtract.addActionListener(calculatorSwing);
button_add.addActionListener(calculatorSwing);
button_9.addActionListener(calculatorSwing);
button_8.addActionListener(calculatorSwing);
button_7.addActionListener(calculatorSwing);
button_6.addActionListener(calculatorSwing);
button_5.addActionListener(calculatorSwing);
button_4.addActionListener(calculatorSwing);
button_3.addActionListener(calculatorSwing);
button_2.addActionListener(calculatorSwing);
button_1.addActionListener(calculatorSwing);
button_0.addActionListener(calculatorSwing);
button_dot.addActionListener(calculatorSwing);
button_equal1.addActionListener(calculatorSwing);
button_equal2.addActionListener(calculatorSwing);
// add all elements to the panel
jPanel.add(labeTextField);
jPanel.add(button_add);
jPanel.add(button_1);
jPanel.add(button_2);
jPanel.add(button_3);
jPanel.add(button_subtract);
jPanel.add(button_4);
jPanel.add(button_5);
jPanel.add(button_6);
jPanel.add(button_mul);
jPanel.add(button_7);
jPanel.add(button_8);
jPanel.add(button_9);
jPanel.add(button_div);
jPanel.add(button_dot);
jPanel.add(button_0);
jPanel.add(button_equal1);
jPanel.add(button_equal2);
// set background of the panel
jPanel.setBackground(Color.darkGray);
// add the panel to the frame
frameToDisplay.add(jPanel);
frameToDisplay.setSize(210, 230);
frameToDisplay.show();
}
//action listener implementation
public void actionPerformed(ActionEvent e) {
String input = e.getActionCommand();
// check if the given value is number
if ((input.charAt(0) >= '0' && input.charAt(0) <= '9') || input.charAt(0) == '.') {
// if operand is present then add to second no
if (!string1.equals(""))
string2 = string2 + input;
else
string0 = string0 + input;
// set the value to the text
labeTextField.setText(string0 + string1 + string2);
} else if (input.charAt(0) == 'C') {
// clearing
string0 = string1 = string2 = "";
// set the value of the text
labeTextField.setText(string0 + string1 + string2);
} else if (input.charAt(0) == '=') {
double equalsInput;
// store the value in the first index
if (string1.equals("+"))
equalsInput = (Double.parseDouble(string0) + Double.parseDouble(string2));
else if (string1.equals("-"))
equalsInput = (Double.parseDouble(string0) - Double.parseDouble(string2));
else if (string1.equals("/"))
equalsInput = (Double.parseDouble(string0) / Double.parseDouble(string2));
else
equalsInput = (Double.parseDouble(string0) * Double.parseDouble(string2));
// set the value of the text
labeTextField.setText(string0 + string1 + string2 + "=" + equalsInput);
// converting int to string
string0 = Double.toString(equalsInput);
string1 = string2 = "";
} else {
// if no operand is there
if (string1.equals("") || string2.equals(""))
string1 = input;
else {
double te;
// store the value in the first index
if (string1.equals("+"))
te = (Double.parseDouble(string0) + Double.parseDouble(string2));
else if (string1.equals("-"))
te = (Double.parseDouble(string0) - Double.parseDouble(string2));
else if (string1.equals("/"))
te = (Double.parseDouble(string0) / Double.parseDouble(string2));
else
te = (Double.parseDouble(string0) * Double.parseDouble(string2));
// converting int to string
string0 = Double.toString(te);
// put the operator
string1 = input;
// take the operand as blank
string2 = "";
}
// set the value of the text
labeTextField.setText(string0 + string1 + string2);
}
}
}
Output:
Conclusion
Java Calculator is used to calculating operations like addition, subtraction, division, multiplication, modulus, and power. This can be done in 2 ways by using a switch case statement and by using swing API.
Recommended Articles
This is a guide to Calculator in Java. Here we discuss the Introduction to Calculator in Java and its different Methods and Examples and Code Implementation. You can also go through our other suggested articles to learn more –