Home >Java >javaTutorial >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.
ADVERTISEMENT Popular Course in this category JAVA MASTERY - Specialization | 78 Course Series | 15 Mock TestsSwing methods for the calculator:
We can create a calculator in 2 ways:
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 }
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
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.
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:
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.
The above is the detailed content of Calculator in Java. For more information, please follow other related articles on the PHP Chinese website!