Java Swing | Simple Calculator Last Updated : 16 Apr, 2021 Comments Improve Suggest changes Like Article Like Report Java Swing is a GUI (graphical user Interface) widget toolkit for Java. Java Swing is a part of Oracle's Java foundation classes . Java Swing is an API for providing graphical user interface elements to Java Programs.Swing was created to provide more powerful and flexible components than Java AWT (Abstract Window Toolkit).In this article we will use Java Swing components to create a simple calculator with only +, -, /, * operations.methods used : add(Component c) : adds component to container.addActionListenerListener(ActionListener d) : add actionListener for specified componentsetBackground(Color c) : sets the background color of the specified containersetSize(int a, int b) : sets the size of container to specified dimensions.setText(String s) : sets the text of the label to s.getText() : returns the text of the label. Java program to create a simple calculator with basic +, -, /, * using java swing elements. Java // Java program to create a simple calculator // with basic +, -, /, * using java swing elements import java.awt.event.*; import javax.swing.*; import java.awt.*; class calculator extends JFrame implements ActionListener { // create a frame static JFrame f; // create a textfield static JTextField l; // store operator and operands String s0, s1, s2; // default constructor calculator() { s0 = s1 = s2 = ""; } // main function public static void main(String args[]) { // create a frame f = new JFrame("calculator"); try { // set look and feel UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { System.err.println(e.getMessage()); } // create a object of class calculator c = new calculator(); // create a textfield l = new JTextField(16); // set the textfield to non editable l.setEditable(false); // create number buttons and some operators JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, ba, bs, bd, bm, be, beq, beq1; // create number buttons b0 = new JButton("0"); b1 = new JButton("1"); b2 = new JButton("2"); b3 = new JButton("3"); b4 = new JButton("4"); b5 = new JButton("5"); b6 = new JButton("6"); b7 = new JButton("7"); b8 = new JButton("8"); b9 = new JButton("9"); // equals button beq1 = new JButton("="); // create operator buttons ba = new JButton("+"); bs = new JButton("-"); bd = new JButton("/"); bm = new JButton("*"); beq = new JButton("C"); // create . button be = new JButton("."); // create a panel JPanel p = new JPanel(); // add action listeners bm.addActionListener(c); bd.addActionListener(c); bs.addActionListener(c); ba.addActionListener(c); b9.addActionListener(c); b8.addActionListener(c); b7.addActionListener(c); b6.addActionListener(c); b5.addActionListener(c); b4.addActionListener(c); b3.addActionListener(c); b2.addActionListener(c); b1.addActionListener(c); b0.addActionListener(c); be.addActionListener(c); beq.addActionListener(c); beq1.addActionListener(c); // add elements to panel p.add(l); p.add(ba); p.add(b1); p.add(b2); p.add(b3); p.add(bs); p.add(b4); p.add(b5); p.add(b6); p.add(bm); p.add(b7); p.add(b8); p.add(b9); p.add(bd); p.add(be); p.add(b0); p.add(beq); p.add(beq1); // set Background of panel p.setBackground(Color.blue); // add panel to frame f.add(p); f.setSize(200, 220); f.show(); } public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); // if the value is a number if ((s.charAt(0) >= '0' && s.charAt(0) <= '9') || s.charAt(0) == '.') { // if operand is present then add to second no if (!s1.equals("")) s2 = s2 + s; else s0 = s0 + s; // set the value of text l.setText(s0 + s1 + s2); } else if (s.charAt(0) == 'C') { // clear the one letter s0 = s1 = s2 = ""; // set the value of text l.setText(s0 + s1 + s2); } else if (s.charAt(0) == '=') { double te; // store the value in 1st if (s1.equals("+")) te = (Double.parseDouble(s0) + Double.parseDouble(s2)); else if (s1.equals("-")) te = (Double.parseDouble(s0) - Double.parseDouble(s2)); else if (s1.equals("/")) te = (Double.parseDouble(s0) / Double.parseDouble(s2)); else te = (Double.parseDouble(s0) * Double.parseDouble(s2)); // set the value of text l.setText(s0 + s1 + s2 + "=" + te); // convert it to string s0 = Double.toString(te); s1 = s2 = ""; } else { // if there was no operand if (s1.equals("") || s2.equals("")) s1 = s; // else evaluate else { double te; // store the value in 1st if (s1.equals("+")) te = (Double.parseDouble(s0) + Double.parseDouble(s2)); else if (s1.equals("-")) te = (Double.parseDouble(s0) - Double.parseDouble(s2)); else if (s1.equals("/")) te = (Double.parseDouble(s0) / Double.parseDouble(s2)); else te = (Double.parseDouble(s0) * Double.parseDouble(s2)); // convert it to string s0 = Double.toString(te); // place the operator s1 = s; // make the operand blank s2 = ""; } // set the value of text l.setText(s0 + s1 + s2); } } } Output : Note : this program might not run in an online compiler please use an offline IDE. Comment More infoAdvertise with us Next Article Java Swing | Simple Calculator andrew1234 Follow Improve Article Tags : Java java-swing Practice Tags : Java Similar Reads Simple Calculator using TCP in Java Prerequisite: Socket Programming in Java Networking just doesn't conclude with a one-way communication between the client and server. For example consider a time telling server which listens to request of the clients and respond with the current time to the client. Real-time applications usually fol 5 min read Student Grade Calculator using Java Swing Consider the following scenario. We need to create a GUI based application which calculates grade of students according to marks obtained in 4 subjects. Below are the range of marks for different grades. MarksGrade>90%ABetween 85% - 90%BBetween 80% - 85%CBetween 70% - 80%DBetween 60% - 70%EBetwee 4 min read How to build a simple Calculator app using Android Studio? Create a simple calculator which can perform basic arithmetic operations like addition, subtraction, multiplication, or division depending upon the user input. A sample video is given below to get an idea about what we are going to do in this article. Note that we are going to implement this project 6 min read Java floor() method with Examples The java.lang.Math.floor() returns the double value that is less than or equal to the argument and is equal to the nearest mathematical integer. Note: If the argument is Integer, then the result is Integer.If the argument is NaN or an infinity or positive zero or negative zero, then the result is th 2 min read How to Use Swing Applet in Java? In this article, we will be using the swing Applet or JApplet in Java. Here, we will make a simple multiplication application that will multiply the two input numbers. Approach to Using Swing Applet in JavaWe need to import the packages for Swing and AWT Components.Once the packages are imported, we 4 min read Java User Input - Scanner Class The most common way to take user input in Java is using the Scanner class. It is a part of java.util package. The scanner class can handle input from different places, like as we are typing at the console, reading from a file, or working with data streams. This class was introduced in Java 5. Before 4 min read Integer signum() Method in Java The signum function is an odd mathematical function that extracts the sign of a real number. The signum function is also known as sign function. The Integer.signum() method of java.lang returns the signum function of the specified integer value. For a positive value, a negative value and zero the me 3 min read Java Math Class Java.lang.Math Class methods help to perform numeric operations like square, square root, cube, cube root, exponential and trigonometric operations.Declarationpublic final class Math extends Object Methods of Math Class in JavaMath class consists of methods that can perform mathematical operations a 7 min read Trigonometric Functions in Java with Examples The class Math contains methods for performing basic numeric operations such as the elementary exponential, logarithm, square root, and trigonometric functions. Java.lang.Math.sin() Method : is an inbuilt method which returns the sine of the value passed as an argument. The value passed in this func 3 min read Java signum() method with Examples The Math.signum() method is a part of the java.lang.Math package. This method returns the sign function of a value passed to it as an argument. In this article, we are going to discuss how this method works for regular values and for special cases such as infinity and NaN.Special Cases:If the argume 2 min read Like