Go Back   TechArena Community > Software > Software Development
Become a Member!
Forgot your username/password?
Register Tags Active Topics RSS Search Mark Forums Read

Sponsored Links



Help me program a calculator in java

Software Development


Reply
 
Thread Tools Search this Thread
  #1  
Old 08-07-2009
Member
 
Join Date: Oct 2008
Posts: 30
Help me program a calculator in java
  

Hello,

I am new to java programming,
I have an assignment for a simple java calculator.
I found code over the net but I still want to do some more complex maths calculations. It will be more helpful if I could get a swing program.
I have done the calculator in vb before but not sure for java.

Thanks in advance.

Reply With Quote
  #2  
Old 08-07-2009
Member
 
Join Date: Oct 2008
Posts: 37
Re: Help me program a calculator in java

Hey I have found this example for java calculator but its not a gui based program exactly but still I think this will help you create your own program using swing components.

Code:
import java.util.Scanner;

public class calculator

{
public static void main(String[] args)
{
char answer;
String input;
int firstnumber;
int secondnumber;


System.out.println ("Welcome to the calculator!");
System.out.println ("To multiply use m, to divide use d, to add use a, to subtract use s");

Scanner keyboard = new Scanner(System.in);

do
{
System.out.println ("Do you want to multiply, divide, add, or subtract? ");
keyboard.nextLine();
input = keyboard.nextLine();
answer = input.charAt(0);

if (answer == 'm')
System.out.println ("Input first number: ");
keyboard.nextLine();
input = keyboard.nextLine();
firstnumber = keyboard.nextInt();


System.out.println ("Would you like another calculation (y/n)? ");
keyboard.nextLine();
input = keyboard.nextLine();
answer = input.charAt(0);
}
while(answer == 'y')
if(answer == 'n');
System.exit(0);
}
}
Reply With Quote
  #3  
Old 08-07-2009
Member
 
Join Date: Oct 2008
Posts: 31
Re: Help me program a calculator in java

Here is a simple example for GUI based java calculator I found:

Code:
/**
This is a simple calculator program can any one take and use.
@author sathish_ssmca
@param nothing */
import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
//<applet code=Calculator height=300 width=200></applet>
public class Calculator extends JApplet {
public void init() {
CalculatorPanel calc=new CalculatorPanel();
getContentPane().add(calc);
}
}

class CalculatorPanel extends JPanel implements ActionListener {
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);
}

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);
}
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");
}

}
}
Reply With Quote
  #4  
Old 08-07-2009
Member
 
Join Date: Oct 2008
Posts: 116
Re: Help me program a calculator in java

Here is a calculator program in swing.
For developing a small calculator program in swing you need two different classes.
  • SwingCalculator.java
  • Calculator.java

The SwingCalculator.java calls the Calculator.java class by JFrame frame = new Calculator(). All the methods and actions are to be performed in Calculator.java class.

Please save the code as SwingCalculator.java

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

class SwingCalculator {
   public static void main(String[] args) {
    JFrame frame = new Calculator();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
}
Here is the code of Calculator.java
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

  class Calculator extends JFrame {
  private final Font BIGGER_FONT = new Font("monspaced",
  Font.PLAIN, 20);
  private JTextField textfield;       
  private boolean   number = true;  
  private String    equalOp  = "=";  
  private CalculatorOp op = new CalculatorOp(); 

  public Calculator() {
  textfield = new JTextField("0", 12);
  textfield.setHorizontalAlignment(JTextField.RIGHT);
  textfield.setFont(BIGGER_FONT);
  
  ActionListener numberListener = new NumberListener();
  String buttonOrder = "1234567890 ";
  JPanel buttonPanel = new JPanel();
  buttonPanel.setLayout(new GridLayout(4, 4, 4, 4));
    for (int i = 0; i < buttonOrder.length(); i++) {
            String key = buttonOrder.substring(i, i+1);
            if (key.equals(" ")) {
                buttonPanel.add(new JLabel(""));
            } else {
                JButton button = new JButton(key);
                button.addActionListener(numberListener);
                button.setFont(BIGGER_FONT);
        buttonPanel.add(button);
            }
        }
  ActionListener operatorListener = new OperatorListener();
  JPanel panel = new JPanel();
  panel.setLayout(new GridLayout(4, 4, 4, 4));
  String[] opOrder = {"+", "-", "*", "/","=","C"};
   for (int i = 0; i < opOrder.length; i++) {
    JButton button = new JButton(opOrder[i]);
    button.addActionListener(operatorListener);
    button.setFont(BIGGER_FONT);
  panel.add(button);
    }
   JPanel pan = new JPanel();
        pan.setLayout(new BorderLayout(4, 4));
        pan.add(textfield, BorderLayout.NORTH );
        pan.add(buttonPanel   , BorderLayout.CENTER);
        pan.add(panel , BorderLayout.EAST  );
        this.setContentPane(pan);
        this.pack();
        this.setTitle("Calculator");
        this.setResizable(false);
    }
        private void action() {
        number = true;         
        textfield.setText("0");
        equalOp  = "=";
        op.setTotal("0");
  }
  class OperatorListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
        if (number) {
                action();
                textfield.setText("0");
            } else {
                number = true; 
                String displayText = textfield.getText();
                if (equalOp.equals("=")) {
                        op.setTotal(displayText);
                    } else if (equalOp.equals("+")) {
                        op.add(displayText);
                    } else if (equalOp.equals("-")) {
                        op.subtract(displayText);
                    } else if (equalOp.equals("*")) {
                        op.multiply(displayText);
                    } else if (equalOp.equals("/")) {
                        op.divide(displayText);
                    }
                   textfield.setText("" + op.getTotalString());
                   equalOp = e.getActionCommand();
            }
           }
           }
    class NumberListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            String digit = event.getActionCommand(); 
            if (number) {
              textfield.setText(digit);
              number = false;
            } else {
             textfield.setText(textfield.getText() + digit);
            }
        }
    }
  public class CalculatorOp {
    
private int total;   
public CalculatorOp() {
        total = 0;
    }
   public String getTotalString() {
        return ""+total;
    }
   public void setTotal(String n) {
        total = convertToNumber(n);
    }
   public void add(String n) {
        total += convertToNumber(n);
   }
   public void subtract(String n) {
        total -= convertToNumber(n);
    }
   public void multiply(String n) {
        total *= convertToNumber(n);
    }
   public void divide(String n) {
        total /= convertToNumber(n);
    }
   private int convertToNumber(String n) {
        return Integer.parseInt(n);
    }
}
}
The constructor new CalculatorOp() calls the CalculatorOp class. The Swing component JTextField is used to create textbox on which calculation is to be performed. JPanel arranges the numeric buttons in a panel. JButton is used to perform an action. OperatorListener class is called to perform action on operators, i.e, '+,-,*,/,='. The class NumberListener is called for numbers 0 to 9.

I hope this helps you.
Reply With Quote
  #5  
Old 28-06-2010
Member
 
Join Date: Jun 2010
Posts: 1
Re: Help me program a calculator in java

HELLO....
I am new to java programming,
I have an assignment for a simple java calculator.
i have need a java program in awt using event.
It will be more helpful if I could get a awt event handling program.
I have done the calculator in awt ,but it contain few functions.
i have need whole functions.
Thanks in advance.
Reply With Quote
Reply

  TechArena Community > Software > Software Development
Tags: , ,



Thread Tools Search this Thread
Search this Thread:

Advanced Search


Similar Threads for: "Help me program a calculator in java"
Thread Thread Starter Forum Replies Last Post
Java Calculator (Not GUI) trixsareforkids Software Development 1 07-04-2011 02:48 AM
Calculator program using visual basic Panchu Software Development 3 24-11-2009 06:19 PM
Link List Example in Java Sample program in Java trickson Software Development 2 04-08-2009 08:23 PM
Replace calculator with Command Line Calculator Eric B Windows Software 3 07-05-2009 04:32 PM
Java Swing Calculator Tutorial hemanthjava Software Development 0 15-10-2006 11:37 AM


All times are GMT +5.5. The time now is 11:47 PM.