import java.awt.*; import java.awt.event.*; /** Programma om de constante periodieke afbetaling * te berekenen bij gegeven kapitaal en periodieke * rentevoet. * @author Lieven Smits * @version 1.0 24/7/2000 */ public class Annuiteit extends Frame implements ActionListener { /** Rentevoet. Uitgedrukt in fracties van 0 tot 1, dus * 5 percent = 0.05 */ private TextField txtRentevoet; /** Looptijd van de lening = aantal afbetalingen. */ private TextField txtPerioden; /** Bedrag van het geleende kapitaal. */ private TextField txtKapitaal; /** Periodiek te betalen bedrag. */ private Label lblAnnuiteit; /** Knop om de berekening te activeren. */ private Button btnBereken; /** Construeer een venster met drie tekstvelden, * vier labels en een drukknop. */ public Annuiteit() { super("Constante annuïteiten"); setLayout(new GridLayout(4, 2)); Label lblRentevoet = new Label("periodieke rentevoet"); add(lblRentevoet); txtRentevoet = new TextField(); add(txtRentevoet); Label lblPerioden = new Label("aantal perioden"); add(lblPerioden); txtPerioden = new TextField(); add(txtPerioden); Label lblKapitaal = new Label("ontleend kapitaal"); add(lblKapitaal); txtKapitaal = new TextField(); add(txtKapitaal); btnBereken = new Button("Bereken afbetaling"); add(btnBereken); lblAnnuiteit = new Label(); lblAnnuiteit.setAlignment(Label.RIGHT); add(lblAnnuiteit); btnBereken.addActionListener(this); setSize(260, 120); show(); } /** Lees de drie invoervelden, bereken de afbetaling * en toon ze in het daartoe bestemde label-veld. */ public void actionPerformed(ActionEvent evt) { // Interpreteer de tekstvelden als getallen; dit kan // een NumberFormatException opleveren ! double dRentevoet = Double.parseDouble(txtRentevoet.getText()); int iPerioden = Integer.parseInt(txtPerioden.getText()); double dKapitaal = Double.parseDouble(txtKapitaal.getText()); // tussenresultaat: v = (1 + rentevoet)^perioden double v = 1.0; for (int k = 1; k <= iPerioden; k++) v *= 1 + dRentevoet; double dAnnuiteit = dKapitaal * dRentevoet * v / (v - 1); lblAnnuiteit.setText(String.valueOf(dAnnuiteit)); } /** Toon een venster waarin periodieke afbetalingen * berekend kunnen worden. */ public static void main(String[] argv) { Annuiteit hetVenster = new Annuiteit(); } }