Moinsen,
Ich muss für die Uni einen simplen BankAccount programmieren. Soweit funktioniert auch alles, nur das Problem ist, dass ich einen Interpreter Fehler kriege, wenn ich das Pin Feld leer lasse. Trägt man eine falsche, zu kurze, zu lange, ... PIN ein, so gibt er ganz normal die Meldung aus, dass die PIN falsch ist und korrigiert werden muss. Ich verstehe einfach nicht, warum er das nicht auch macht, wenn das PIN Feld leer ist, denn ist habe in der gleichen Bedingung stehen hilfe1.isEmpty(), wobei hilfe1 der Inhalt des PIN Feldes ist.
Ich hoffe ihr könnt mir helfen diesen kleinen Fehler zu beheben.
Fehlercode:
Java Code:
Ich muss für die Uni einen simplen BankAccount programmieren. Soweit funktioniert auch alles, nur das Problem ist, dass ich einen Interpreter Fehler kriege, wenn ich das Pin Feld leer lasse. Trägt man eine falsche, zu kurze, zu lange, ... PIN ein, so gibt er ganz normal die Meldung aus, dass die PIN falsch ist und korrigiert werden muss. Ich verstehe einfach nicht, warum er das nicht auch macht, wenn das PIN Feld leer ist, denn ist habe in der gleichen Bedingung stehen hilfe1.isEmpty(), wobei hilfe1 der Inhalt des PIN Feldes ist.
Ich hoffe ihr könnt mir helfen diesen kleinen Fehler zu beheben.
Fehlercode:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at EinAus.actionPerformed(EinAus.java:176)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Java Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EinAus extends JFrame implements ActionListener
{
private JTextField tfBetrag, tfPIN, tfSystem, tfKontostand;
private int Einzahlung, Auszahlung, Kontostand = 0, Limit = 3000, Geheimzahl = 1234, Dispo = -5000, Auszahlungen = 0;
private JTextArea tfTest;
private JButton btAbheben = new JButton();
private JButton btBestätigen = new JButton();
private JButton btEinzahlen = new JButton();
public EinAus()
{
super("Bank Account");
this.getContentPane().setBackground(Color.lightGray);
this.getContentPane().setLayout(null);
//Einzahlen-Button
JButton btEinzahlen = new JButton("Einzahlen");
btEinzahlen.setBounds (20, 120, 120, 30);
btEinzahlen.setBackground(Color.green);
btEinzahlen.addActionListener(this);
this.getContentPane().add(btEinzahlen);
//Auszahlen-Button
JButton btAbheben = new JButton("Abheben");
btAbheben.setBounds (20, 160, 120, 30);
btAbheben.setBackground(Color.green);
btAbheben.addActionListener(this);
this.getContentPane().add(btAbheben);
//Bestätigen-Button
JButton btBestätigen = new JButton("Bestätigen");
btBestätigen.setBounds (20, 200, 120, 30);
btBestätigen.setBackground(Color.green);
btBestätigen.addActionListener(this);
this.getContentPane().add(btBestätigen);
//Eingabe-Label
JLabel lbBetrag = new JLabel ("Betrag:");
lbBetrag.setBounds (110, 40, 90, 30);
this.getContentPane().add (lbBetrag);
//Kontostand-Label
JLabel lbKontostand = new JLabel ("Kontostand");
lbKontostand.setBounds (440, 35, 90, 30);
this.getContentPane().add (lbKontostand);
//Eingabe-Textfeld
tfBetrag = new JTextField (40);
tfBetrag.setText ("");
tfBetrag.setBounds (160, 40, 200, 30);
tfBetrag.setBackground(Color.white);
this.getContentPane().add (tfBetrag);
//Kontostand-Textfeld
tfKontostand = new JTextField (40);
tfKontostand.setText ("");
tfKontostand.setBounds (390, 60, 160, 30);
tfKontostand.setBackground(Color.white);
this.getContentPane().add (tfKontostand);
//Ausgabe-Label
JLabel lbPIN = new JLabel ("PIN:");
lbPIN.setBounds (130, 80, 90, 30);
this.getContentPane().add (lbPIN);
//Ausgabe-Textfeld
tfPIN = new JTextField (40);
tfPIN.setText ("");
tfPIN.setBounds (160, 80, 200, 30);
tfPIN.setBackground(Color.white);
this.getContentPane().add (tfPIN);
//System-Textfeld
//tfSystem = new JTextField (40);
//tfSystem.setText ("");
//tfSystem.setBounds (375, 120, 200, 200);
//tfSystem.setBackground(Color.white);
//this.getContentPane().add (tfSystem);
//Test-Textarea
tfTest = new JTextArea(1,1);
tfTest.setText ("");
tfTest.setBounds (375, 120, 200, 200);
tfTest.setBackground(Color.white);
tfTest.setWrapStyleWord(true);
tfTest.setLineWrap(true);
this.getContentPane().add (tfTest);
this.setVisible(true);
}
public void actionPerformed(ActionEvent event)
{
String cmd = event.getActionCommand();
if (cmd.equals("Einzahlen"))
{
int hilfe = Integer.parseInt(tfPIN.getText());
String hilfe1 = tfBetrag.getText();
int hilfe3 = Integer.parseInt(tfBetrag.getText());
if (!hilfe1.isEmpty() && hilfe == Geheimzahl && hilfe3 != 0)
{
Einzahlung = Integer.parseInt(tfBetrag.getText());
tfBetrag.setText("");
Kontostand = Kontostand + Einzahlung;
tfTest.setText(tfTest.getText() + "\n" + "Einzahlung erfolgreich. Kontostand aktualisiert.");
String hilfe2 = String.valueOf(Kontostand);
tfKontostand.setText(hilfe2);
}
else
{
tfTest.setText(tfTest.getText() + "\n" + "Bitte überprüfen sie ihre Eingaben");
}
}
else if (cmd.equals("Abheben"))
{
int hilfe = Integer.parseInt(tfPIN.getText());
String hilfe1 = tfBetrag.getText();
int hilfe3 = Integer.parseInt(tfBetrag.getText());
if (!hilfe1.isEmpty() && hilfe == Geheimzahl)
{
if (hilfe3 > Limit)
{
tfTest.setText(tfTest.getText() + "\n" + "Betrag überschreitet Limit. Bitte kleineren Betrag wählen");
}
else if (hilfe3 <= Limit && Auszahlungen < 10000 && Kontostand > -5000 && hilfe3 != 0)
{
Auszahlung = Integer.parseInt(tfBetrag.getText());
tfBetrag.setText("");
int hilfe4 = Kontostand - Auszahlung;
if (hilfe4 < -5000)
{
tfTest.setText(tfTest.getText() + "\n" + "Dispo wird mit dieser Auszahlung überzogen. Bitte kleineren Betrag wählen.");
}
else
{
Kontostand = Kontostand - Auszahlung;
tfTest.setText(tfTest.getText() + "\n" + "Auszahlung erfolgreich. Kontostand aktualisiert.");
String hilfe2 = String.valueOf(Kontostand);
tfKontostand.setText(hilfe2);
Auszahlungen = Auszahlungen + Auszahlung;
}
}
else if (hilfe3 == 0)
{
tfTest.setText(tfTest.getText() + "\n" + "Bitte überprüfen sie ihre Eingaben");
}
else if (Kontostand < -5000)
{
tfTest.setText(tfTest.getText() + "\n" + "Dispo überzogen. Bitte Konto ausgleichen.");
}
else if (Auszahlungen >= 10000)
{
tfTest.setText(tfTest.getText() + "\n" + "Globales Limit für den heutigen Tag erreicht. Bitte kommen sie morgen wieder.");
}
}
else
{
tfTest.setText(tfTest.getText() + "\n" + "Bitte überprüfen sie ihre Eingaben");
}
}
else if (cmd.equals("Bestätigen"))
{
int hilfe = Integer.parseInt(tfPIN.getText());
String hilfe1 = tfPIN.getText();
String hilfe2 = String.valueOf(Kontostand);
if (hilfe1.isEmpty() || hilfe != Geheimzahl)
{
tfTest.setText(tfTest.getText() + "\n" + "PIN falsch. Bitte korrigieren.");
}
else
{
tfTest.setText(tfTest.getText() + "\n" + "PIN Authentifizierung erfolgreich");
tfKontostand.setText(hilfe2);
}
}
}
public static void main(String[] args)
{
EinAus wnd = new EinAus();
wnd.setSize(600,400);
wnd.setVisible(true);
}
}
Zuletzt bearbeitet von einem Moderator: