Question

In: Computer Science

Please use Java language in an easy way with comments! Thanks! Create a calculator that uses...

Please use Java language in an easy way with comments! Thanks!

Create a calculator that uses an array of buttons for numbers from 0-9, the . for decimals, and for operators +, -, * ,/ and = as well as a JTextfield that displays the current value or the result. Use ActionListeners and LayoutManagers appropriately.

The example below shows how to determine which button has been clicked.

ActionListener actionListener = new ActionListener()
 {
     public void actionPerformed(ActionEvent actionEvent) 
     {
        System.out.println(actionEvent.getActionCommand());
     }
 };

Solutions

Expert Solution

CODE IN JAVA:

Calculator.java file:

// 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 {

   // creating a textfield
   static JTextField l;

   // storing oprerator and operands
   String s0, s1, s2;

   // default constrcutor
   Calculator()
   {
       s0 = s1 = s2 = "";
   }

   // main method
   public static void main(String args[])
   {
       // creating a frame
       JFrame f = new JFrame("calculator");


       // creating a object of class
       Calculator c = new Calculator();

       // creating a textfield
       l = new JTextField(16);

       // setting the textfield to non editable
       l.setEditable(false);

       // creating number buttons and some operators
       JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, ba, bs, bd, bm, be, beq, beq1;

       // creating 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");

       // creating equals button
       beq1 = new JButton("=");

       // creating operator buttons
       ba = new JButton("+");
       bs = new JButton("-");
       bd = new JButton("/");
       bm = new JButton("*");
       beq = new JButton("C");

       // creating . button
       be = new JButton(".");

       // create a panel
       JPanel p = new JPanel();

       // adding 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);

       // adding 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);


       // add panel to frame
       f.add(p);

       f.setSize(200, 220);
       f.show();
   }
   public void actionPerformed(ActionEvent e)
   {
       String str = e.getActionCommand();

       // if the value is a number
       if ((str.charAt(0) >= '0' && str.charAt(0) <= '9') || str.charAt(0) == '.') {
           // if operand is present then add to second no
           if (!s1.equals(""))
               s2 = s2 + str;
           else
               s0 = s0 + str;

           // set the value of text
           l.setText(s0 + s1 + s2);
       }
       else if (str.charAt(0) == 'C') {
           // clear the one letter
           s0 = s1 = s2 = "";

           // set the value of text
           l.setText(s0 + s1 + s2);
       }
       else if (str.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 = str;
           // 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 = str;

               // make the operand blank
               s2 = "";
           }

           // set the value of text
           l.setText(s0 + s1 + s2);
       }
   }
}

OUTPUT:


Related Solutions

Please use java language in an easy way and comment as much as you can! Thanks...
Please use java language in an easy way and comment as much as you can! Thanks 1. A driver class with a main method, which creates instances of various objects (two of each subclass) and adds them as items to an ArrayList named "inventory". A foreach loop should loop through the ArrayList and call the use() method of each item. Define the ArrayList in a way that it only holds elements of the GameItem class and its subclasses. Make proper...
Please use java language in an easy way and comment as much as you can! Thanks...
Please use java language in an easy way and comment as much as you can! Thanks (Write a code question) Write a generic method called "findMin" that takes an array of Comparable objects as a parameter. (Use proper syntax, so that no type checking warnings are generated by the compiler.) The method should search the array and return the index of the smallest value. (Analysis of Algorithms question) Determine the growth function and time complexity (in Big-Oh notation) of the...
Please use java language in an easy way and comment as much as you can! Thanks...
Please use java language in an easy way and comment as much as you can! Thanks (Write a code question) Write a generic method called "findMin" that takes an array of String objects as a parameter. (Use proper syntax, so that no type checking warnings are generated by the compiler.) The method should search the array and return the index of the smallest value.
Please use Java language with comments! Thanks! Write a program that will display multiple dots move...
Please use Java language with comments! Thanks! Write a program that will display multiple dots move across the Frame and randomly change direction when they hit the edge of the screen. Do this by creating a Dot class and making each dot an object of that class. You may reuse code written in class for this part of the assignment. Create a subclass of the Dot class called PlayerDot that is controlled by the player through keyboard input (arrow keys)...
How to identify when to use super() in constructor for java language in a easy way?
How to identify when to use super() in constructor for java language in a easy way?
create scientific calculator using java language with OOP rule and interfaces.
create scientific calculator using java language with OOP rule and interfaces.
Calculator in Assembly Language (Please add comments to explain your steps) Description: You are responsible to...
Calculator in Assembly Language (Please add comments to explain your steps) Description: You are responsible to implement several assembly functions to perform the simple arithmetic calculations for 2 64-bit integers. These functions will use the C function signature but the main logic within this function should be inline assembly code using the ASM block similar to the assembly example shown in class. Program Specification: 1. long mult ( long op1, long op2 ) - Can’t use the MUL/IMUL instructions, meaning...
Java Language Only Use Java FX In this project we will build a BMI calculator. BMI...
Java Language Only Use Java FX In this project we will build a BMI calculator. BMI is calculated using the following formulas: Measurement Units Formula and Calculation Kilograms and meters (or centimetres) Formula: weight (kg) / [height (m)]2 The formula for BMI is weight in kilograms divided by height in meters squared. If height has been measured in centimetres, divide by 100 to convert this to meters. Pounds and inches Formula: 703 x weight (lbs) / [height (in)]2 When using...
Please use java language Thanks! Implement a recursive method called "pow" that takes 2 integers, x...
Please use java language Thanks! Implement a recursive method called "pow" that takes 2 integers, x and y, as parameters and returns the value xy (x raised to the power y). The exponent must be non-negative. If a negative argument is given for the exponent, then an exception should be thrown. Implement a recursive method called "fib" that takes a positive integer, n, as a parameter and returns the nth Fibonacci value. Assume that the first 2 values in the...
Please Use C language to Make a calculator. Make sure calculator is able to take up...
Please Use C language to Make a calculator. Make sure calculator is able to take up to 5 values. Try to make calculator using simple coding As you can. Please create a simple calculator with only +, -,* and divide. It has to be able to enter any numbers (including decimals) and be able to do the following functions: +, -, divide and multiply. Please have the answers, always rounded to two decimal figures. The calculator will also have to...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT