// // Name: Joe Smith // ID: 0123456789 // Lab: 2 // Version: 1 // import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class GraphicalSavingsCalculator extends JFrame implements ActionListener { private TextField targetSavingsFieldLabel; private TextField targetSavingsField; private TextField numberOfMonthsFieldLabel; private TextField numberOfMonthsField; private TextField interestRateFieldLabel; private TextField interestRateField; private Button calculateButton; public SavingsCalculator() { //Panel panel = new Panel(); targetSavingsFieldLabel = new TextField("0", 20); targetSavingsField = new TextField("0", 20); numberOfMonthsFieldLabel = new TextField("0", 20); numberOfMonthsField = new TextField("0", 20); interestRateFieldLabel = new TextField("0", 20); interestRateField = new TextField("0", 20); calculateButton = new Button("Calculate"); targetSavingsFieldLabel.setEditable(false); targetSavingsFieldLabel.setText("Target Savings:"); interestRateFieldLabel.setEditable(false); interestRateFieldLabel.setText("Annual Interest Rate:"); numberOfMonthsFieldLabel.setEditable(false); numberOfMonthsFieldLabel.setText("Number Of Months:"); calculateButton.addActionListener(this); Container c = getContentPane(); c.setLayout( new FlowLayout() ); c.add(targetSavingsFieldLabel); c.add(targetSavingsField); c.add(numberOfMonthsFieldLabel); c.add(numberOfMonthsField); c.add(interestRateFieldLabel); c.add(interestRateField); c.add(calculateButton); } public static void main( String args[] ) { SavingsCalculator sc = new SavingsCalculator(); sc.setSize( 400, 500 ); sc.setVisible( true ); sc.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); } public void actionPerformed(ActionEvent event) { if( event.getActionCommand() == "Calculate" ) { repaint(); } } public void paint(Graphics g) { // here is where you should call the calculateMonthlyPayment method // defined in the SavingsCalculator class (and written by you) // the code below just shows you how to display text strings g.drawString(targetSavingsField.getText(), 300, 160); g.drawString(numberOfMonthsField.getText(), 300, 180); g.drawString(interestRateField.getText(), 300, 200); } }