QUOTE(Gloin @ 13 Oct, 2008 - 12:40 PM)

Of course it does. The constants still have the same value and in the if-statement it will evaluate addition to true and subtraction won't be evaluated.
Perhaps you should assign the constant SUBTRACTION the value -1 instead!?
Thanks- the subtract now works... I also was able to add multiply & divide. Do you know where I would start if I wanted to implement a "clear" function?
CODE
import java.awt.GridLayout;
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;
public class MiniCalculator {
private static final int FRAME_WIDTH = 200;
private static final int FRAME_HEIGHT = 120;
// Keeps track of the current operation (subtract, add, etc)
private static final int NO_OPERATION = 0;
private static final int ADDITION = 1;
private static final int SUBTRACTION = -1;
private static final int DIVISION = 2;
private static final int MULTIPLICATION = 12;
public static int operation = NO_OPERATION;
public static JTextField textFieldDisplay;
public static double Value1 = 0; // holds the value before the operation
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(6, 5) );
frame.add(buttonPanel);
textFieldDisplay = new JTextField();
buttonPanel.add(textFieldDisplay);
JButton buttonClear = new JButton(" Clear ");
buttonPanel.add(buttonClear);
JButton buttonPlus = new JButton(" + ");
buttonPanel.add(buttonPlus);
JButton buttonMinus = new JButton(" - ");
buttonPanel.add(buttonMinus);
JButton buttonDivide = new JButton(" / ");
buttonPanel.add(buttonDivide);
JButton buttonMultiply = new JButton(" X ");
buttonPanel.add(buttonMultiply);
JButton buttonEqual = new JButton(" = ");
buttonPanel.add(buttonEqual);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("Mini-Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class EqualSignListener implements ActionListener {
public void actionPerformed(ActionEvent event)
{
double Value2 = Double.parseDouble(textFieldDisplay.getText());
if (operation == ADDITION) {
Value2 += Value1;
}
if (operation == SUBTRACTION) {
Value2 -=Value1;
}
if (operation == DIVISION) {
Value2 = Value1 / Value2;
}
if (operation == MULTIPLICATION) {
Value2 = Value1 * Value2;
}
// Convert from a number to a string
Double answer = new Double(Value2);
textFieldDisplay.setText( answer.toString() );
// Reset the operation to show no current operation
operation = NO_OPERATION;
}
}
class PlusSignListener implements ActionListener {
public void actionPerformed(ActionEvent event)
{
Value1 = Double.parseDouble(textFieldDisplay.getText());
operation = ADDITION;
}
}
class MinusSignListener implements ActionListener {
public void actionPerformed(ActionEvent event)
{
Value1 = Double.parseDouble(textFieldDisplay.getText());
operation = SUBTRACTION;
}
}
class DivideSignListener implements ActionListener {
public void actionPerformed(ActionEvent event)
{
Value1 = Double.parseDouble(textFieldDisplay.getText());
operation = DIVISION;
}
}
class MultiplySignListener implements ActionListener {
public void actionPerformed(ActionEvent event)
{
Value1 = Double.parseDouble(textFieldDisplay.getText());
operation = MULTIPLICATION;
}
}
ActionListener plusSignListener = new PlusSignListener();
buttonPlus.addActionListener(plusSignListener);
ActionListener minusSignListener = new MinusSignListener();
buttonMinus.addActionListener(minusSignListener);
ActionListener divideSignListener = new DivideSignListener();
buttonDivide.addActionListener(divideSignListener);
ActionListener multiplySignListener = new MultiplySignListener();
buttonMultiply.addActionListener(multiplySignListener);
ActionListener equalSignListener = new EqualSignListener();
buttonEqual.addActionListener(equalSignListener);
}
}