Pennerschwert
Commodore
- Registriert
- Mai 2011
- Beiträge
- 4.192
Liebes Forum,
ich bin gerade dabei zu Übungszwecken einen Budgetplaner zu programmieren. Grob gesagt, soll das Teil Kosten- und Einnahmenposten einlesen und später noch verrechnen.
Die Stelle an der es hakt hat mit dem ExceptionHandling zu tun, falls der Benutzer keinen Double Wert eingibt, sondern zb. "abc". Meine Vorgehensweise war bis jetzt, dass ich die "NumberFormatException" per Try-Catch Block abfange, dann eine Fehlermeldung (mit Anweisung zur richtigen Eingabe) ausgebe und abschließend die Eingabe neu starte. Allerdings werden immer nur die Eingaben des ersten Versuchs angenommen.
In Bildern:
Bei Klick auf "Versuchen sie es nochmal" soll das Eingabe Fenster erneut aufgerufen werden und die Eingabe wiederholt werden.
Der Code, der bei Klick auf weiter ausgeführt wird:
Der Code der bei "Versuchen sie es nochmal ausgeführt wird:
Vielleicht kann mir ja einer von euch helfen oder mir eine elegantere Methode zur Behandlung der Exception beschreiben. Falls noch mehr vom Code gebraucht wird oder etwas unklar ist, einfach sagen.
Leider zerschießt die Code Funktion des Foums, die Formatierung ein wenig.
Und in Zukunft wird natürlich ausschließlich in Englisch programmiert, vielleicht ändere ich das auch noch. Wichtiger ist mir aber erstmal, dass es das tut, was ich will
Edit: Ich sehe grade, dass der Titel falsch, ich wollte schon vor ein paar Tagen etwas fragen, bin dann aber selber auf die Lösung gekommen. Scheinbar hat er als ich ausversehen auf "vorher getippten Text wiederherstellen" (oder so ähnlich) geklickt habe, den Titel mitgeändert :/
ich bin gerade dabei zu Übungszwecken einen Budgetplaner zu programmieren. Grob gesagt, soll das Teil Kosten- und Einnahmenposten einlesen und später noch verrechnen.
Die Stelle an der es hakt hat mit dem ExceptionHandling zu tun, falls der Benutzer keinen Double Wert eingibt, sondern zb. "abc". Meine Vorgehensweise war bis jetzt, dass ich die "NumberFormatException" per Try-Catch Block abfange, dann eine Fehlermeldung (mit Anweisung zur richtigen Eingabe) ausgebe und abschließend die Eingabe neu starte. Allerdings werden immer nur die Eingaben des ersten Versuchs angenommen.
In Bildern:
Bei Klick auf "Versuchen sie es nochmal" soll das Eingabe Fenster erneut aufgerufen werden und die Eingabe wiederholt werden.
Der Code, der bei Klick auf weiter ausgeführt wird:
Code:
//Instanziere neue Objekte der Klasse WiederholteFinanztransaktion
WiederholteFinanztransaktion lohn = new WiederholteFinanztransaktion();
WiederholteFinanztransaktion bafög = new WiederholteFinanztransaktion();
WiederholteFinanztransaktion kapitaleinkünfte = new WiederholteFinanztransaktion();
WiederholteFinanztransaktion unterhalt = new WiederholteFinanztransaktion();
WiederholteFinanztransaktion sonstigeEinnahmen = new WiederholteFinanztransaktion();
//Lese die Eingaben aus den jTextFields, wandle diese in Double um und speichere sie in der Betragsvariable der jeweiligen Objekte
try {
lohn.setFinanzTransaktionen(Double.parseDouble(gehaltUI.getText()));
bafög.setFinanzTransaktionen(Double.parseDouble(bafögUI.getText()));
kapitaleinkünfte.setFinanzTransaktionen(Double.parseDouble(kapitaleinkünfteUI.getText()));
unterhalt.setFinanzTransaktionen(Double.parseDouble(unterhaltUI.getText()));
sonstigeEinnahmen.setFinanzTransaktionen(Double.parseDouble(sonstigesUI.getText()));
} catch (NumberFormatException e) {
//Setze Eingaben auf 0 und starte anschließend die Eingabe erneut
lohn.setFinanzTransaktionen(0);
bafög.setFinanzTransaktionen(0);
kapitaleinkünfte.setFinanzTransaktionen(0);
unterhalt.setFinanzTransaktionen(0);
sonstigeEinnahmen.setFinanzTransaktionen(0);
//Erzeuge neues Fehlerfenster
FalscheEingabeEinnahmen fehler = new FalscheEingabeEinnahmen();
fehler.setVisible(true);
this.dispose();
}
Der Code der bei "Versuchen sie es nochmal ausgeführt wird:
Code:
private void wiederholeMouseClicked(java.awt.event.MouseEvent evt) {
BudgetPlanerEinnahmenUI fehler = new BudgetPlanerEinnahmenUI();
fehler.setVisible(true);
this.dispose();
}
Vielleicht kann mir ja einer von euch helfen oder mir eine elegantere Methode zur Behandlung der Exception beschreiben. Falls noch mehr vom Code gebraucht wird oder etwas unklar ist, einfach sagen.
Leider zerschießt die Code Funktion des Foums, die Formatierung ein wenig.
Und in Zukunft wird natürlich ausschließlich in Englisch programmiert, vielleicht ändere ich das auch noch. Wichtiger ist mir aber erstmal, dass es das tut, was ich will
Edit: Ich sehe grade, dass der Titel falsch, ich wollte schon vor ein paar Tagen etwas fragen, bin dann aber selber auf die Lösung gekommen. Scheinbar hat er als ich ausversehen auf "vorher getippten Text wiederherstellen" (oder so ähnlich) geklickt habe, den Titel mitgeändert :/
Zuletzt bearbeitet: