import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFormattedTextField;
import javax.swing.text.MaskFormatter;
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( new GridLayout( 0, 2, 6, 3) );
JButton btEinzahlen = new JButton("Einzahlen");
btEinzahlen.setBounds (20, 120, 120, 30);
btEinzahlen.setBackground(Color.green);
btEinzahlen.addActionListener(this);
this.getContentPane().add(btEinzahlen);
JButton btAbheben = new JButton("Abheben");
btAbheben.setBounds (20, 160, 120, 30);
btAbheben.setBackground(Color.green);
btAbheben.addActionListener(this);
this.getContentPane().add(btAbheben);
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);
JLabel lbBetrag = new JLabel ("Betrag:");
lbBetrag.setBounds (110, 40, 90, 30);
this.getContentPane().add (lbBetrag);
JLabel lbKontostand = new JLabel ("Kontostand");
lbKontostand.setBounds (440, 35, 90, 30);
this.getContentPane().add (lbKontostand);
tfBetrag = new JTextField (40);
tfBetrag.setText ("");
tfBetrag.setBounds (160, 40, 200, 30);
tfBetrag.setBackground(Color.white);
this.getContentPane().add (tfBetrag);
tfKontostand = new JTextField (40);
tfKontostand.setText ("");
tfKontostand.setBounds (390, 60, 160, 30);
tfKontostand.setBackground(Color.white);
this.getContentPane().add (tfKontostand);
JLabel lbPIN = new JLabel ("PIN:");
lbPIN.setBounds (130, 80, 90, 30);
this.getContentPane().add (lbPIN);
tfPIN = new JTextField (40);
tfPIN.setText ("");
tfPIN.setBounds (160, 80, 200, 30);
tfPIN.setBackground(Color.white);
this.getContentPane().add (tfPIN);
tfTest = new JTextArea();
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"))
{
if (tfPIN.getText().isEmpty())
{
tfTest.setText(tfTest.getText() + "\n" + "PIN falsch. Bitte korrigieren.");
}
else
{
try{
int hilfe = Integer.parseInt(tfPIN.getText());
String hilfe2 = String.valueOf(Kontostand);
String hilfe3 = tfPIN.getText();
if (hilfe != Geheimzahl)
{
tfTest.setText(tfTest.getText() + "\n" + "PIN falsch. Bitte korrigieren.");
}
else
{
tfTest.setText(tfTest.getText() + "\n" + "PIN Authentifizierung erfolgreich");
tfKontostand.setText(hilfe2);
}
}
catch (java.lang.NumberFormatException e)
{
tfTest.setText(tfTest.getText() + "\n" + "PIN Code muss aus Zahlen bestehen. Versuchen sie es bitte erneut.");
}
}
}
}
public static void main(String[] args)
{
EinAus wnd = new EinAus();
wnd.setSize(600,400);
wnd.setVisible(true);
}
}