import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class Accumulate extends Applet implements ActionListener { private float oldFigure, newFigure; private Rate rate; private InitialAmount initialAmount; private NewAmount newAmount; private Button button = new Button("Another Year"); public void init() { rate = new Rate(this); initialAmount = new InitialAmount(this); add(button); button.addActionListener(this); newAmount = new NewAmount(this); } public void setInitialAmount(float initialAmount) { oldFigure = initialAmount; } public void actionPerformed(ActionEvent event) { newFigure = oldFigure + (rate.getRate() * oldFigure / 100.0f); newAmount.setNewAmount(newFigure); oldFigure = newFigure; } } class Rate implements ActionListener { private int rate; private Applet applet; private TextField textField = new TextField(20); public Rate( Applet applet) { this.applet = applet; applet.add(new Label("Enter interest rate:")); applet.add(textField); textField.addActionListener(this); } public void actionPerformed(ActionEvent event) { rate = Integer.parseInt(textField.getText()); } public int getRate() { return rate; } } class InitialAmount implements ActionListener { private float amount; private Accumulate applet; private TextField textField = new TextField(20); public InitialAmount(Accumulate applet) { this.applet = applet; applet.add(new Label("Enter initial amount:")); applet.add(textField); textField.addActionListener(this); } public void actionPerformed(ActionEvent event) { amount = Integer.parseInt(textField.getText()); applet.setInitialAmount(amount); } } class NewAmount { private float newAmount; private Applet applet; private TextField textField = new TextField(20); public NewAmount(Applet applet) { this.applet = applet; applet.add(new Label("Your money at the end of the year is:")); applet.add(textField); } public void setNewAmount(float newAmount) { this.newAmount = newAmount; int dollars = (int) newAmount; int cents = Math.round(100.0f * (newAmount - dollars)); textField.setText(dollars + " dollars " + cents + " cents"); } }