import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.awt.GridLayout.*;
public class Rechner implements ActionListener {
     JFrame applikation;
     Container container;
     JPanel main;
     JPanel down;
     private JTextField tpreis;
     private JTextField tsteigung;
	 private JTextField tjahre;
     private JTextField tergebnis;
     // Menüleiste
     JMenuBar menueLeiste;
     // Menüleiste Elemente
     JMenu datei;
     // Datei
     JMenuItem beenden;
     public Rechner() {
          applikation = new JFrame("Rechner");
          container = applikation.getContentPane();
          main = new JPanel();
          down = new JPanel();
          main.setLayout( new GridLayout(/*3*/ 4, 5, 5, 5) );		// Zeilengröße 3
          down.setLayout( new GridLayout(/*3*/ 2, 5, 5, 5) );		// Zeilengröße 3
          main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
		  JLabel preis = new JLabel();
		  preis.setText("<html> Preis [€]:</html>");
		  main.add(preis);
		  tpreis = new JTextField();
		  tpreis.setToolTipText("Preis");
		  tpreis.addActionListener(new ActionListener(){
		  public void actionPerformed(ActionEvent e){
   		  ausrechnen();
		  }
		  });
 		  main.add(tpreis);
 		  JLabel steigung = new JLabel();
		  steigung.setText("<html> jährliche Steigerung [%]:</html>");
		  main.add(steigung);
		  tsteigung = new JTextField();
		  tsteigung.setToolTipText("Preissteigung");
		  tsteigung.addActionListener(new ActionListener(){
		  public void actionPerformed(ActionEvent e){
   		  ausrechnen();
		  }
		  });
 		  main.add(tsteigung);
		  JLabel jahre = new JLabel();
		  jahre.setText("<html> Jahre:</html>");
		  main.add(jahre);
		  tjahre = new JTextField();
		  tjahre.setToolTipText("Anzahl der Jahre");
		  tjahre.addActionListener(new ActionListener(){
		  public void actionPerformed(ActionEvent e){
   		  ausrechnen();
		  }
		  });
 		  main.add(tjahre);
		  JLabel ergebnis = new JLabel();
		  ergebnis.setText("<html> Endpreis [€] :</html>");
		  main.add(ergebnis);
		  tergebnis = new JTextField(4);
		  tergebnis.setToolTipText("dynamischer Wasserpreis");
		  tergebnis.setEditable(false);
 		  main.add(tergebnis);
 		  JLabel leer = new JLabel("<html> </html>");
 		  down.add(leer);
  		  // Button
  		  JButton berechnen = new JButton("Berechnen");
		  berechnen.addActionListener(
    	  new ActionListener() {
          public void actionPerformed(ActionEvent e){
   		  ausrechnen();
		  }
		  });
          down.add(berechnen);
          // Menüleiste erzeugen
          menueLeiste = new JMenuBar();
          // Menüelemente erzeugen
          datei = new JMenu("Datei");
          // Untermenüelemente erzeugen
          beenden = new JMenuItem("Beenden");
          beenden.addActionListener(this);
          // Menüelemente hinzufügen
          menueLeiste.add(datei);
          // Untermenüelemente hinzufügen
          datei.add(beenden);
		  applikation.add(menueLeiste, BorderLayout.NORTH);
          applikation.add(main, BorderLayout.CENTER);
          applikation.add(down, BorderLayout.SOUTH);
          applikation.setSize(280, 280);									// Fenstergröße
          applikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          applikation.setVisible(true);
     }
     public void actionPerformed(ActionEvent object) {
          if (object.getSource() == beenden){
               System.exit( 0 );
          }
     }
    
    private void ausrechnen(){
    
    try
   				{
     				// Komma in Punkt zum rechnen Umwandeln für den Preis
					String Preis = tpreis.getText();
					Preis = Preis.replace(',', '.');
      				double p = Double.parseDouble(Preis);
					// Komma in Punkt zum rechnen Umwandeln für die Steigung
					String Steigung = tsteigung.getText();
					Steigung = Steigung.replace(',', '.');
      				double s = Double.parseDouble(Steigung);
      				// Komma in Punkt zum rechnen Umwandeln für die Jahre
      				String Jahre = tjahre.getText();
					Jahre = Jahre.replace(',', '.');
      				double j = Double.parseDouble(Jahre);
      				double Zins;
					Zins = (s/100)+1;
					double summe = 0;
					for (int i = 0; i < j; i++)
        			{
          			p = p * Zins;
          			summe = summe += p;
          			}
          			String s1 = String.format(" %.4f" , summe);
					tergebnis.setText(s1);
				}
				catch (NumberFormatException ex )
   				{
   					System.out.println("falsche Daten eingegeben.");
				}
        		}
    
    
     public static void main(String[] args) {
          new Rechner();
     }
}