public class DauerauftragEndkapital extends JPanel
{
private String[] arrayZahlungsperioden = { "jährlich", "halbjährlich",
"vierteljährlich", "monatlich" };
private JTextField textFieldRatenhoehe;
private JComboBox comboBoxZahlungenProJahr;
private JTextField textFieldZinssatz;
private JTextField textFieldLaufzeit;
private GrafikDauerauftragEndkapital grafikDauerauftragEndkapital;
public DruckDauerauftragEndkapital druckDauerauftragEndkapital;
public Startseite startseite;
public double ratenhoehe;
public int laufzeit;
public double zinssatz;
public int zahlungenProJahr;
public double endkapital;
// public int panelBreite;
// public int panelHoehe;
public DauerauftragEndkapital( Startseite startseite )
{
this.setBackground( Color.white );
this.setBorder( BorderFactory.createBevelBorder( 1, Color.black, Color
.darkGray ) );
this.setLayout( null );
this.startseite = startseite;
textFieldRatenhoehe = new JTextField();
textFieldRatenhoehe.addCaretListener( new DruckDauerauftragEndkapital( this ) );
comboBoxZahlungenProJahr = new JComboBox( arrayZahlungsperioden );
comboBoxZahlungenProJahr.addItemListener( new DruckDauerauftragEndkapital( this ) );
textFieldZinssatz = new JTextField();
textFieldZinssatz.addCaretListener( new DruckDauerauftragEndkapital( this ) );
textFieldLaufzeit = new JTextField();
textFieldLaufzeit.addCaretListener( new DruckDauerauftragEndkapital( this ) );
// labelanlagebetrag = new JLabel( "Monatliche anlagebetrag: ");
// labelZinssatz = new JLabel( "Zinssatz: " );
// labelLaufzeit = new JLabel( "Laufzeit: ");
grafikDauerauftragEndkapital = new GrafikDauerauftragEndkapital( this );
druckDauerauftragEndkapital = new DruckDauerauftragEndkapital( this );
this.add( grafikDauerauftragEndkapital );
this.add( druckDauerauftragEndkapital );
// this.add( labelanlagebetrag );
this.add( textFieldRatenhoehe );
// this.add( labelZinssatz );
this.add( textFieldZinssatz );
// this.add( labelLaufzeit );
this.add( textFieldLaufzeit );
this.add( comboBoxZahlungenProJahr );
grafikDauerauftragEndkapital.setBounds( 1, 1, 800, 600 );
druckDauerauftragEndkapital.setBounds( 320, 20, 400, 400 );
// labelanlagebetrag.setBounds( 20, 70, 150, 25 );
textFieldRatenhoehe.setBounds( 150, 70, 80, 25 );
comboBoxZahlungenProJahr.setBounds( 150, 190, 100, 100 );
// labelZinssatz.setBounds( 20, 110, 150, 25 );
textFieldZinssatz.setBounds( 150, 110, 80, 25 );
// labelLaufzeit.setBounds( 20, 150, 150, 25 );
textFieldLaufzeit.setBounds( 150, 150, 80, 25 );
// panelBreite = this.getWidth();
// panelHoehe = this.getHeight();
//
// darstellbereichX = panelBreite - 2*rand;
// darstellbereichY = panelHoehe - 2*rand;
// g.setColor(Color.WHITE);
// g.fillRect(0,0,panelBreite,panelHoehe);
//
// umrechnungsfaktorX = darstellbereichX/anzahlWerte;
// umrechnungsfaktorY = darstellbereichY/maxWert;
}
// Innere Klasse
class GrafikDauerauftragEndkapital extends JPanel
{
private DauerauftragEndkapital dauerauftragEndkapital;
public GrafikDauerauftragEndkapital( DauerauftragEndkapital dauerauftragEndkapital )
{
this.dauerauftragEndkapital = dauerauftragEndkapital;
}
public void paint( Graphics g )
{
g.setFont( new Font( "Arial", Font.BOLD, 24 ) );
g.setColor( Color.black );
g.fillRect( 0, 0, 800, 40 );
g.setColor( Color.white );
g.drawString( "Dauerauftrag Endkapital", 10, 27 );
g.setColor( Color.black );
// g.setColor( Color.gray );
// Zeichne dickere Unterschtreichung der Überschrift
// for ( int i = 20; i < 23; i++ )
// {
// g.drawLine( 0, i, 700, i );
// }
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
// Eingabefelder mit Namen versehen
g.drawString( "Ratenhoehe: ", 20, 90 );
g.drawString( "Zahlungen/Jahr: ", 20, 210 );
g.drawString( "Zinssatz: ", 20, 130 );
g.drawString( "Laufzeit: ", 20, 170 );
// Eingabefelder mit Einheit beschriften
g.drawString( "EUR", 240, 90 );
g.drawString( "Prozent", 240, 130 );
if ( dauerauftragEndkapital.laufzeit == 1 )
{
g.drawString( "Jahr", 240, 170 );
}
else
{
g.drawString( "Jahre", 240, 170 );
}
// g.setColor( Color.black );
}
}
class DruckDauerauftragEndkapital extends JPanel implements CaretListener,
ItemListener
{
private DauerauftragEndkapital dauerauftragEndkapital;
public DruckDauerauftragEndkapital( DauerauftragEndkapital dauerauftragEndkapital )
{
this.setBackground( Color.white );
this.setBorder( BorderFactory.createBevelBorder( 1, Color.black, Color
.darkGray ) );
this.setLayout( null );
this.dauerauftragEndkapital = dauerauftragEndkapital;
}
public void paint( Graphics g )
{
DecimalFormat decimalFormat = new DecimalFormat( "#0.00" );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Ratenhöhe: ", 50, 60 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( dauerauftragEndkapital.ratenhoehe ) + " EUR"
, 230, 60 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Zahlungen/Jahr: ", 50, 95 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( dauerauftragEndkapital.zahlungenProJahr )
, 230, 95 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Zinssatz: ", 50, 130 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( dauerauftragEndkapital.zinssatz ) + " Prozent"
, 230, 130 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Laufzeit: ", 50, 165 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
if ( dauerauftragEndkapital.laufzeit == 1 )
{
g.drawString( "" + dauerauftragEndkapital.laufzeit + " Jahr", 230, 165 );
}
else
{
g.drawString( "" + dauerauftragEndkapital.laufzeit + " Jahre", 230, 165 );
}
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Zinsen: ", 50, 200 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( 0.00 ) + " Prozent"
, 230, 200 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Endkapital: ", 50, 235 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( dauerauftragEndkapital.endkapital ) + " EUR"
, 230, 235 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Eingesteuertes Kapital: ", 50, 270 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( 0.0 ) + " EUR"
, 230, 270 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Gewinn: ", 50, 305 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( 0.00 ) + " EUR"
, 230, 305 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
g.drawString( "Gewinn in Prozent: ", 50, 340 );
g.setFont( new Font( "Arial", Font.BOLD, 12 ) );
g.drawString( "" + decimalFormat.format( 0.00 ) + " Prozent", 230, 340 );
g.setFont( new Font( "Arial", Font.PLAIN, 12 ) );
}
public void caretUpdate( CaretEvent e )
{
// dauerauftragEndkapital.endkapital = 2000;
dauerauftragEndkapital.ratenhoehe = 0.0;
dauerauftragEndkapital.laufzeit = 0;
dauerauftragEndkapital.zinssatz = 0;
dauerauftragEndkapital.endkapital = 0.0;
dauerauftragEndkapital.ratenhoehe = Double.parseDouble( dauerauftragEndkapital.textFieldRatenhoehe
.getText() );
dauerauftragEndkapital.laufzeit = Integer.parseInt( dauerauftragEndkapital.textFieldLaufzeit
.getText() );
dauerauftragEndkapital.zinssatz = Double.parseDouble( dauerauftragEndkapital.textFieldZinssatz
.getText() );
// System.out.println( "Hallo." + dauerauftragEndkapital.endkapital );
// Berechne Endkapital
// dauerauftragEndkapital.endkapital = dauerauftragEndkapital.anlagebetrag * dauerauftragEndkapital.laufzeit
// * ( dauerauftragEndkapital.zinssatz / 100 + 1 );
// dauerauftragEndkapital.endkapital = anlagebetrag *
// Math.pow( 1 + zinssatz / 100, laufzeit );
//
// System.out.println( "Endkapital: " + endkapital + " anlagebetrag: "
// + anlagebetrag + "Zinssatz: " + zinssatz );
// Warum dauerauftragEndkapital.repaint(); ???
dauerauftragEndkapital.repaint();
dauerauftragEndkapital.startseite.repaint();
}
// Für die ComboBox comboBoxZahlungenProJahr
public void itemStateChanged( ItemEvent e )
{
dauerauftragEndkapital.repaint();
// Startseite.repaint() bewirkt neuzeichnen des Fensters.
dauerauftragEndkapital.startseite.repaint();
}
}
}