import javax.swing.*;
import java.awt.*; 
import java.awt.event.*;

/**************************************
 *GUI for totaling a series of numbers.
 **************************************/
public class AdderTwo extends JFrame implements ActionListener
{
    public static final int WIDTH = 400;
    public static final int HEIGHT = 200;

    //private JTextField inputOutputField; 
    private JTextField inputField; 
    private JTextField outputField;
    private double sum = 0;

    public static void main(String[] args)
    {
        AdderTwo guiAdder = new AdderTwo();
        guiAdder.setVisible(true);
    }

    public AdderTwo()
    {
        setTitle("Adding Machine");
        addWindowListener(new WindowDestroyer());
        setSize(WIDTH, HEIGHT);
        Container contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout());

        JPanel buttonPanel = new JPanel();
        buttonPanel.setBackground(Color.gray);
        buttonPanel.setLayout(new FlowLayout()); 
        JButton addButton = new JButton("Add"); 
        addButton.addActionListener(this);
        buttonPanel.add(addButton); 
        JButton resetButton = new JButton("Reset"); 
        resetButton.addActionListener(this);
        buttonPanel.add(resetButton);
        contentPane.add(buttonPanel, BorderLayout.SOUTH);

        JPanel textPanel = new JPanel(); 
        textPanel.setBackground(Color.yellow); 
        textPanel.setLayout(new GridLayout()); 

        inputField = new JTextField();
        inputField.setBackground(Color.white);
        textPanel.add(inputField);
        
        
        outputField=new JTextField();
        outputField.setBackground(Color.lightGray);
        textPanel.add(outputField);
        
        JLabel enterLabel = new JLabel ( "Click, and enter numbers to the left" );
        textPanel.add(enterLabel);
        contentPane.add(textPanel, BorderLayout.CENTER);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getActionCommand().equals("Add"))
        {
            sum = sum +
                stringToDouble(inputField.getText());
            outputField.setText(Double.toString(sum));
        }
        else if (e.getActionCommand().equals("Reset"))
        {
            sum = 0;
            outputField.setText("0.0");
        }
        else 
            outputField.setText("Error in adder code.");
     }
   
    private static double stringToDouble(String stringObject)
    {
        return Double.parseDouble(stringObject.trim());
    }
}
