Thursday, January 14, 2010

Calculator Program

Categories:

 Calculator.java
/**
 *This is a simple calculator program written in java.
 *@author Tapas kumar jena
 *@mail tapas.friends@gmail.com
 */

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calculator extends JApplet {
    //initialization
    public void init() {
        CalculatorPanel calc = new CalculatorPanel();
        getContentPane().add(calc);
    }
}

/*
 * This the class which actually makes the Calculator components and arrange them.
 */
class CalculatorPanel extends JPanel implements ActionListener {
 //Declare required components 
 JButton n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,plus,minus,mul,div,dot, equal;
    static JTextField result = new JTextField("0", 45);
    static String lastCommand = null;
    JOptionPane p = new JOptionPane();
    double preRes = 0, secVal = 0, res;

    private static void assign(String no) {
        if ((result.getText()).equals("0"))
            result.setText(no);
        else if (lastCommand == "=") {
            result.setText(no);
            lastCommand = null;
        } else
            result.setText(result.getText() + no);
    }
    
    //Default constructor 
    public CalculatorPanel() {
        setLayout(new BorderLayout());
        result.setEditable(false);
        result.setSize(300, 200);
        add(result, BorderLayout.NORTH);
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4));

        n7 = new JButton("7");
        panel.add(n7);
        n7.addActionListener(this);
        n8 = new JButton("8");
        panel.add(n8);
        n8.addActionListener(this);
        n9 = new JButton("9");
        panel.add(n9);
        n9.addActionListener(this);
        div = new JButton("/");
        panel.add(div);
        div.addActionListener(this);

        n4 = new JButton("4");
        panel.add(n4);
        n4.addActionListener(this);
        n5 = new JButton("5");
        panel.add(n5);
        n5.addActionListener(this);
        n6 = new JButton("6");
        panel.add(n6);
        n6.addActionListener(this);
        mul = new JButton("*");
        panel.add(mul);
        mul.addActionListener(this);

        n1 = new JButton("1");
        panel.add(n1);
        n1.addActionListener(this);
        n2 = new JButton("2");
        panel.add(n2);
        n2.addActionListener(this);
        n3 = new JButton("3");
        panel.add(n3);
        n3.addActionListener(this);
        minus = new JButton("-");
        panel.add(minus);
        minus.addActionListener(this);

        dot = new JButton(".");
        panel.add(dot);
        dot.addActionListener(this);
        n0 = new JButton("0");
        panel.add(n0);
        n0.addActionListener(this);
        equal = new JButton("=");
        panel.add(equal);
        equal.addActionListener(this);
        plus = new JButton("+");
        panel.add(plus);
        plus.addActionListener(this);
        add(panel, BorderLayout.CENTER);
    }//constructor end 

    //Define Actions and calculation part 
    public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == n1)
            assign("1");
        else if (ae.getSource() == n2)
            assign("2");
        else if (ae.getSource() == n3)
            assign("3");
        else if (ae.getSource() == n4)
            assign("4");
        else if (ae.getSource() == n5)
            assign("5");
        else if (ae.getSource() == n6)
            assign("6");
        else if (ae.getSource() == n7)
            assign("7");
        else if (ae.getSource() == n8)
            assign("8");
        else if (ae.getSource() == n9)
            assign("9");
        else if (ae.getSource() == n0)
            assign("0");
        else if (ae.getSource() == dot) {
            if (((result.getText()).indexOf(".")) == -1)
                result.setText(result.getText() + ".");
        }else if (ae.getSource() == minus) {
            preRes = Double.parseDouble(result.getText());
            lastCommand = "-";
            result.setText("0");
        }else if (ae.getSource() == div) {
            preRes = Double.parseDouble(result.getText());
            lastCommand = "/";
            result.setText("0");
        }else if (ae.getSource() == equal) {
            secVal = Double.parseDouble(result.getText());
            if (lastCommand.equals("/"))
                res = preRes / secVal;
            else if (lastCommand.equals("*"))
                res = preRes * secVal;
            else if (lastCommand.equals("-"))
                res = preRes - secVal;
            else if (lastCommand.equals("+"))
                res = preRes + secVal;
            result.setText(" " + res);
            lastCommand = "=";
        }else if (ae.getSource() == mul) {
            preRes = Double.parseDouble(result.getText());
            lastCommand = "*";
            result.setText("0");
        }else if (ae.getSource() == plus) {
            preRes = Double.parseDouble(result.getText());
            lastCommand = "+";
            result.setText("0");
        }
    }//actionPerformed end 
}
The above prograam looks like below -


Spread The Love, Share Our Article

Related Posts

No Response to "Calculator Program"

Post a Comment