import java.applet.Applet ;
import java.awt.Graphics ;
import java.awt.Graphics2D ;
import java.awt.geom.Rectangle2D ;  
import javax.swing.JOptionPane ; 

/** ein Applet zur Darstellung der Restschuldentwicklung 
 *  eines Darlehens 
 * 
 * @author Jan Johannsen
 * @version 0.1
 */
public class DarlehenApplet extends Applet
{

    /** Der aktuelle Grafikkontext. Wird bei jedem paint neu gesetzt. */
    private Graphics2D g2; 

    /** Hoehe des Darlehens */
    private final double BETRAG = 100000.0 ;

    /** Breite der Balken */
    private final int BREITE = 25 ;

    /** Hoehe des ersten Balken */
    private final int HOEHE = 700 ; 

    /** Start des ersten Balkens */
    private final int ANFANG = 50 ; 


    /** Daten des dargestellten Darlehens */
    private double zinssatz ;
    private double tilgung ; 
 

    public DarlehenApplet() 
    {
	String input = JOptionPane.showInputDialog("Zinssatz in % :") ;
	zinssatz = Double.parseDouble(input) ;

 	input = JOptionPane.showInputDialog("Tilgungsrate in % :") ;
 	tilgung = Double.parseDouble(input) ; 
 
    }

     /** Zeichnet das Diagramm */
    public void paint(Graphics g)
    {
	/* Speichern des Grafikkontext */
	g2 = (Graphics2D)g; 

	Darlehen modell = new Darlehen( BETRAG , zinssatz , tilgung ) ;

	double aktuelleHoehe ;
	int jahre = 0 ;

	while ( modell.getRestSchuld() > 0 )
	    {
		
		aktuelleHoehe = HOEHE * modell.getRestSchuld() / BETRAG ; 
		g2.fill(new Rectangle2D.Double( jahre*(BREITE+5) ,  
                                                ANFANG + HOEHE - aktuelleHoehe,
                                                BREITE,
                                                aktuelleHoehe ) ) ;

		if ( jahre % 5 == 0 )
		    g2.drawString( ""+jahre , jahre * (BREITE+5) + 5 , ANFANG + HOEHE + 15 ) ; 

		modell.einJahr() ;
		jahre++ ;

	    }

    }

}
