Hallo zusammen,
aller Anfang ist schwer...das trifft wohl folgende Sache zu.
Ich bin blutiger Anfänger und habe bis Donnerstag (übermorgen, 24.00) eine Aufgabe zu bewältigen, die ich schon angefangen habe. Leider stecke ich fest und weiß nicht wo mein Fehler liegt.
Mein Code ist ziemlich lang, vielleicht (wahrscheinlich) gibt es Kürzungsmöglichkeiten.
Die Aufg.-Stellung lautet wie folgt:
Entwickeln Sie für Ihr java-Programm zur Ratentilgung ein GUI-Fenster, um die Eingabe von Kredit, Zinssatz und Laufzeit über Textfelder zu erfassen. Die Ausgabe des vollständigen Tilgunsplanes soll über geeignete GUI-Klassen z.B. einer Textarea im Fenster erfolgen.
Für eure Hilfe bin ich sehr dankbar.
Bekommt jemand meinen Code funktionsfähig hin?
aller Anfang ist schwer...das trifft wohl folgende Sache zu.
Ich bin blutiger Anfänger und habe bis Donnerstag (übermorgen, 24.00) eine Aufgabe zu bewältigen, die ich schon angefangen habe. Leider stecke ich fest und weiß nicht wo mein Fehler liegt.
Mein Code ist ziemlich lang, vielleicht (wahrscheinlich) gibt es Kürzungsmöglichkeiten.
Die Aufg.-Stellung lautet wie folgt:
Entwickeln Sie für Ihr java-Programm zur Ratentilgung ein GUI-Fenster, um die Eingabe von Kredit, Zinssatz und Laufzeit über Textfelder zu erfassen. Die Ausgabe des vollständigen Tilgunsplanes soll über geeignete GUI-Klassen z.B. einer Textarea im Fenster erfolgen.
Für eure Hilfe bin ich sehr dankbar.
Bekommt jemand meinen Code funktionsfähig hin?
Code:
import java.awt.*;
import java.awt.event.*;
import java.text.*;
class Ratentilgung
{
// enthält die main-Funktion
public static void main(String[] arg){
// eine Instanz von MeinFenster konstruieren
MeinFenster fenster = new MeinFenster();
// Fenster sichtbar machen
fenster.setVisible(true);
}// end of main
}// end of class Ratentilgung
// Hier kommt die Definition meiner Fensterklasse
class MeinFenster extends Frame
{
// Instanzvariablen
TextField
tfKreditbetrag,
tfZinssatz,
tfLaufzeit;
Label
lbName;
Button
butBerechne;
// TextArea
TextArea
textPlan;
// Konstruktor
public MeinFenster() // default oder standard-Konstruktor
{
// Titelleiste -----------------------------------------
super("Kredit-Manager v1.0");
// Größe des Fensters festlegen
this.setSize(600, 500); // in Pixel Breite / Höhe
// Layout einstellen -----------------------------------
GridBagLayout grid = new GridBagLayout();
GridBagConstraints constr = new GridBagConstraints();
this.setLayout(grid);
// Farbe Hintergrund
setBackground(Color.ORANGE);
// GUI-Komponente konstruieren und aufs Fenster legen---Zeile1----------
lbName = new Label("Kreditbetrag");
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbName, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
tfKreditbetrag = new TextField(" ", 10);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( tfKreditbetrag, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
// GUI-Komponente konstruieren----Zeile2-------------------------------------
// Constraints festlegen
// Komponente auf das Fenster legen
lbName = new Label("Zinssatz");
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbName, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
tfZinssatz = new TextField(" ", 4);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( tfZinssatz, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
// GUI-Komponente konstruieren----Zeile3-------------------------------------
// Constraints festlegen
// Komponente auf das Fenster legen
lbName = new Label("Laufzeit");
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = 1;
this.add( lbName, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
tfLaufzeit = new TextField(" ", 2);
constr.anchor = GridBagConstraints.WEST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( tfLaufzeit, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
// GUI-Komponente konstruieren----Zeile4------------------------------------
// Constraints festlegen
// Komponente auf das Fenster legen
butBerechne = new Button("Berechne");
constr.fill = GridBagConstraints.BOTH;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( butBerechne, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
// GUI-Komponente konstruieren----Zeile5------------------------------------
// Constraints festlegen
// Komponente auf das Fenster legen
textPlan = new TextArea(10,70); // Höhe/Breite
textPlan.setEditable(true);
constr.gridx = 0;
constr.gridy = 8;
this.add( textPlan, constr);
// GUI-Komponente konstruieren
// Constraints festlegen
// Komponente auf das Fenster legen
constr.anchor = GridBagConstraints.EAST;
constr.gridwidth = GridBagConstraints.REMAINDER;
this.add( new Label(" "), constr);
this.setVisible(true);
// ------------------------------------------
// Listener anbinden ------------------------
butBerechne.addActionListener( new MeinActionAdapter());
this.addWindowListener( new MeinWindowAdapter());
}// end of Konstruktor
// weitere Methoden ----------------------------------
// innere Klassen ------------------------------------
// Bei einer Interface-Klasse müssen alle Methoden implementiert werden!
class MeinActionAdapter implements ActionListener
{
public void actionPerformed( ActionEvent event )
{
String strKreditbetrag = tfKreditbetrag.getText();
String strZinssatz = tfZinssatz.getText();
String strLaufzeit = tfLaufzeit.getText();
String strBeschriftung = new String("Jahr Schuld Zinsbetrag Tilgungsrate Annuitaet ");
double erg = 0;
textPlan.append(strBeschriftung);
}// end of Methode actionPerformed
} // end of inner class MeinActionAdapter
// Bei einer Interface-Klasse müssen alle Methoden implementiert werden!
class MeinWindowAdapter implements WindowListener
{
public void windowOpened( WindowEvent event )
{
// leerer Implementierungsblock
}
public void windowClosed( WindowEvent event )
{
}
public void windowClosing( WindowEvent event )
{
System.out.println("Fenster geschlossen. Sie koennen dieses Fenster jetzt auch schliessen.");
dispose(); // gibt Ressourcen frei
System.exit(0); // Exitus vom Programm
}
public void windowIconified( WindowEvent event )
{
System.out.println("Fenster minimiert");
}
public void windowDeiconified( WindowEvent event )
{
System.out.println("Fenster aufgeklappt");
}
public void windowActivated( WindowEvent event )
{
}
public void windowDeactivated( WindowEvent event )
{
}
}// end of inner class MeinWindowAdapter
}//end of class MeinFenster
class Tilgung
{
//Membervariablen
double kredit;
double zinssatz;
int laufzeit;
double tilgungsrate;
//Konstruktor
public Tilgung()
{
kredit = Double.parseDouble(strKreditbetrag);
zinssatz = Double.parseDouble(strZinssatz);
laufzeit = Double.parseDouble(strLaufzeit);
tilgungsrate = 0;
}
public Tilgung(double kredit, double zinssatz, int laufzeit)
{
this.kredit=kredit;
this.zinssatz=zinssatz;
this.laufzeit=laufzeit;
}
//Festlegung des Dezimalformats ohne Kommastellen
DecimalFormat dFormat = new DecimalFormat ("###,###");
//Methoden
public void gibTilgungsplanAus()
{
double gesamtZinsen = 0; //für die Berechnung der Gesamtzinsen
double gesamtAnnuitaet = 0; //für die Berechnung der Gesamtannuitaet
for (int x=0; x<=6; x++)
{
//für die Nummerierung am Anfang
textPlan.append(" "+(x+1)+". ");
//restschuld
double restschuld=kredit-(x*(kredit/laufzeit));
if(restschuld<100000)
{
System.out.print(" "+dFormat.format(restschuld));
}
else
{
System.out.print(dFormat.format(restschuld));
}
//zinsbetrag
double zinsbetrag=(kredit-(x*(kredit/laufzeit)))*zinssatz/100;
if(zinsbetrag<10000)
{
System.out.print(" "+dFormat.format(zinsbetrag));
}
else
{
System.out.print(" "+dFormat.format(zinsbetrag));
}
//tilgungsrate
double tilgungsrate=kredit/laufzeit;
System.out.print(" "+dFormat.format(tilgungsrate));
//annuitaet
double annuitaet=((kredit-(x*(kredit/laufzeit)))*zinssatz/100)+(kredit/laufzeit);
System.out.println(" "+dFormat.format(annuitaet));
//Gesamt-Zinsen
gesamtZinsen = zinsbetrag + gesamtZinsen;
//Gesamt-Annuitaet
gesamtAnnuitaet = annuitaet + gesamtAnnuitaet;
}
System.out.println("\nZinsen gesamt: "+dFormat.format(gesamtZinsen));
System.out.println("Annuitaet gesamt: "+dFormat.format(gesamtAnnuitaet));
}
}// end of class Tilgung