Source of Adder.java


  1: 
  2: import javax.swing.*;
  3: import java.awt.*;
  4: import java.awt.event.*;
  5: 
  6: /**
  7:  GUI for totaling a series of numbers.
  8: */
  9: public class Adder extends JFrame implements ActionListener
 10: {
 11:     public static final int WIDTH = 400;
 12:     public static final int HEIGHT = 200;
 13: 
 14:     private JTextField inputOutputField;
 15:     private double sum = 0;
 16: 
 17:     public static void main(String[] args)
 18:     {
 19:         Adder guiAdder = new Adder( );
 20:         guiAdder.setVisible(true);
 21:     }
 22: 
 23:     public Adder( )
 24:     {
 25:         setTitle("Adding Machine");
 26:         addWindowListener(new WindowDestroyer( ));
 27:         setSize(WIDTH, HEIGHT);
 28:         Container contentPane = getContentPane( );
 29:         contentPane.setLayout(new BorderLayout( ));
 30: 
 31:         JPanel buttonPanel = new JPanel( );
 32:         buttonPanel.setBackground(Color.GRAY);
 33:         buttonPanel.setLayout(new FlowLayout( ));
 34:         JButton addButton = new JButton("Add");
 35:         addButton.addActionListener(this);
 36:         buttonPanel.add(addButton);
 37:         JButton resetButton = new JButton("Reset");
 38:         resetButton.addActionListener(this);
 39:         buttonPanel.add(resetButton);
 40:         contentPane.add(buttonPanel, BorderLayout.SOUTH);
 41: 
 42:         JPanel textPanel = new JPanel( );
 43:         textPanel.setBackground(Color.BLUE);
 44:         textPanel.setLayout(new FlowLayout( ));
 45: 
 46:         inputOutputField = new JTextField("Numbers go here.", 30);
 47:         inputOutputField.setBackground(Color.WHITE);
 48:         textPanel.add(inputOutputField);
 49:         contentPane.add(textPanel, BorderLayout.CENTER);
 50:     }
 51: 
 52:     public void actionPerformed(ActionEvent e)
 53:     {
 54:         if (e.getActionCommand( ).equals("Add"))
 55:         {
 56:             sum = sum +
 57:                 stringToDouble(inputOutputField.getText( ));
 58:             inputOutputField.setText(Double.toString(sum));
 59:         }
 60:         else if (e.getActionCommand( ).equals("Reset"))
 61:         {
 62:             sum = 0;
 63:             inputOutputField.setText("0.0");
 64:         }
 65:         else
 66:             inputOutputField.setText("Error in adder code.");
 67:      }
 68: 
 69:     private static double stringToDouble(String stringObject)
 70:     {
 71:         return Double.parseDouble(stringObject.trim( ));
 72:     }
 73: }