public class Adder extends JFrame implements ActionListener
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: }