Compare commits

..

8 Commits
gui ... main

22 changed files with 863 additions and 2115 deletions

View File

@ -1,9 +1,7 @@
package de.hs_mannheim.informatik.bank; package de.hs_mannheim.informatik.bank;
import de.hs_mannheim.informatik.bank.facade.Banksystem; import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.hs_mannheim.informatik.bank.gui.AuswahlmenüFrame; import de.hs_mannheim.informatik.bank.ui.UI;
import de.hs_mannheim.informatik.bank.gui.HauptmenüFrame;
public class Main { public class Main {
@ -11,9 +9,7 @@ public class Main {
Banksystem bs = new Banksystem("Spaßkasse Mannheim"); Banksystem bs = new Banksystem("Spaßkasse Mannheim");
HauptmenüFrame hmf = new HauptmenüFrame(bs); UI ui = new UI(bs);
AuswahlmenüFrame amf = new AuswahlmenüFrame(bs);
} }

View File

@ -3,7 +3,7 @@ package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
public class Konto implements Serializable, Comparable<Konto>{ public class Konto implements Serializable, Comparable<Object> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -46,7 +46,6 @@ public class Konto implements Serializable, Comparable<Konto>{
}); });
return auflistung; return auflistung;
} }
public long berechneSaldo(int anzahl) { public long berechneSaldo(int anzahl) {
@ -85,11 +84,11 @@ public class Konto implements Serializable, Comparable<Konto>{
} }
@Override @Override
public int compareTo(Konto o) { public int compareTo(Object o) {
Konto k = (Konto) o; Konto k = (Konto) o;
return (int) (this.getKontostand() - k.getKontostand()); return (int) (k.getKontostand() - this.getKontostand());
} }

View File

@ -4,8 +4,8 @@ import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Depot; import de.hs_mannheim.informatik.bank.domain.Depot;
@ -69,16 +69,71 @@ public class Banksystem {
String[] liste = new String[konten.size()]; String[] liste = new String[konten.size()];
kontenList.stream().forEach( kontenList.stream().forEach(konto -> {
konto -> {
liste[kontenList.indexOf(konto)] = konto.toString(); liste[kontenList.indexOf(konto)] = konto.toString();
} });
);
return liste; return liste;
} }
public void mapKontoToString(){
HashMap<Integer, Konto> konten = bank.getKonten();
List<String> kontenList = konten.values().stream()
.map(konto -> konto.toString())
.collect(Collectors.toList());
kontenList.stream().forEach(s -> System.out.println(s));
}
public void mapKundeToString(){
HashMap<Integer, Kunde> kunden = bank.getKundenMap();
List<String> kundenList = kunden.values().stream()
.map(kunde -> kunde.toString())
.collect(Collectors.toList());
kundenList.stream().forEach(s -> System.out.println(s));
}
public double getAllBalances(){
Collection<Konto> kontenValues = bank.getKonten().values();
Stream<Konto> kontenStream = kontenValues.stream();
double sum = kontenStream.mapToDouble(konto -> konto.getKontostand()).sum();
return sum;
}
public void getMinMaxAvgBalances(){
Collection<Konto> kontenValues = bank.getKonten().values();
Stream<Konto> kontenStream = kontenValues.stream();
double min = kontenStream.mapToDouble(konto -> konto.getKontostand()).min().getAsDouble();
kontenStream = kontenValues.stream();
double max = kontenStream.mapToDouble(konto -> konto.getKontostand()).max().getAsDouble();
kontenStream = kontenValues.stream();
double avg = kontenStream.mapToDouble(konto -> konto.getKontostand()).average().getAsDouble();
System.out.println("Min: " + (min / 100) + " Max: " + (max /100) + " Avg: " + (avg / 100));
}
public String[] getAktienliste() { public String[] getAktienliste() {
Collection<String> aktien = bank.getAktienliste(); Collection<String> aktien = bank.getAktienliste();
@ -93,6 +148,17 @@ public class Banksystem {
} }
public void getNegativeKontostände() {
HashMap<Integer, Konto> konten = bank.getKonten();
konten.entrySet().stream().filter(konto -> konto.getValue().getKontostand() < 0).forEach(konto -> {
System.out.println(konto.getValue().toString());
});
}
public long geldEinzahlen(int kontonummer, long betrag) throws IOException { public long geldEinzahlen(int kontonummer, long betrag) throws IOException {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getKunde().getName()); konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getKunde().getName());
@ -193,7 +259,6 @@ public class Banksystem {
} }
public String getBankname() { public String getBankname() {
return bank.getName(); return bank.getName();
} }

View File

@ -1,96 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AktienAnzeigenFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JTextArea output;
private Banksystem bs;
public AktienAnzeigenFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Aktien anzeigen");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Aktien anzeigen");
button.setBounds(10, 10, 130, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.setBounds(245, 10, 130, 25);
button2.addActionListener(this);
panel.add(button2);
this.output = new JTextArea();
output.setBounds(10, 55, 365, 200);
output.setEditable(false);
panel.add(output);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Aktien anzeigen...");
if (e.getSource() == button) {
String[] aktien = bs.getAktienliste();
if (aktien.length > 0) {
for (String s : aktien) {
output.append(s);
}
} else {
output.append("Keine Aktien vorhanden");
}
}
else if (e.getSource() == button2) {
frame.dispose();
AuswahlmenüDepotFrame amdf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}

View File

@ -1,147 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AktienKaufenFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JLabel label;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JLabel label5;
private JLabel label6;
private JLabel label7;
private JLabel label8;
private JTextField input;
private JTextField input2;
private JTextField input3;
private JTextArea output;
private JButton button;
private JButton button2;
private String aktienName1 = "DBK.DE";
private String aktienName2 = "DCO.DE";
private Banksystem bs;
public AktienKaufenFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Aktien kaufen");
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Folgende Aktien sind verfügbar:");
label.setBounds(10, 10, 200, 25);
panel.add(label);
this.label2 = new JLabel("1. Deutsche Bank (DBK.DE)");
label2.setBounds(10, 30, 200, 25);
panel.add(label2);
this.label7 = new JLabel("Preis d. Aktie:" + " " + bs.getAktienPreis(aktienName1) + "€");
label7.setBounds(200, 30, 200, 25);
panel.add(label7);
this.label3 = new JLabel("2. Deere & Company (DCO.DE)");
label3.setBounds(10, 50, 200, 25);
panel.add(label3);
this.label8 = new JLabel("Preis d. Aktie:" + " " + bs.getAktienPreis(aktienName2) + "€");
label8.setBounds(200, 50, 200, 25);
panel.add(label8);
this.label4 = new JLabel("Name d. Aktie");
label4.setBounds(10, 85, 200, 25);
panel.add(label4);
this.input = new JTextField(20);
input.setBounds(120, 85, 80, 25);
panel.add(input);
this.label5 = new JLabel("Anzahl");
label5.setBounds(10, 115, 200, 25);
panel.add(label5);
this.input2 = new JTextField(20);
input2.setBounds(120, 115, 80, 25);
panel.add(input2);
this.label6 = new JLabel("Kontonummer");
label6.setBounds(10, 145, 200, 25);
panel.add(label6);
this.input3 = new JTextField(20);
input3.setBounds(120, 145, 80, 25);
panel.add(input3);
this.button = new JButton("Kaufen");
button.setBounds(250, 115, 80, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.setBounds(200, 415, 80, 25);
button2.addActionListener(this);
panel.add(button2);
this.output = new JTextArea();
output.setBounds(40, 200, 400, 200);
panel.add(output);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Aktien kaufen...");
if (e.getSource() == button) {
String aktienName = input.getText();
int anzahl = Integer.parseInt(input2.getText());
int kontonummer = Integer.parseInt(input3.getText());
boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName);
output.append("Aktienkauf" + ((!erg) ? " nicht" : "") + " erfolgreich. ");
}
else if (e.getSource() == button2) {
frame.dispose();
AuswahlmenüDepotFrame amdf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}

View File

@ -1,146 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AuswahlmenüDepotFrame implements ActionListener{
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
private JButton button7;
private Banksystem bs;
public AuswahlmenüDepotFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Auswahlmenü Depot");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Geld einzahlen");
button.setBounds(40, 20, 300, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Geld abheben");
button2.setBounds(40, 50, 300, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Kontoauszug");
button3.setBounds(40, 80, 300, 25);
button3.addActionListener(this);
panel.add(button3);
this.button4 = new JButton("Saldo");
button4.setBounds(40, 110, 300, 25);
button4.addActionListener(this);
panel.add(button4);
this.button5 = new JButton("Aktien kaufen");
button5.setBounds(40, 140, 300, 25);
button5.addActionListener(this);
panel.add(button5);
this.button6 = new JButton("Aktien anzeigen");
button6.setBounds(40, 170, 300, 25);
button6.addActionListener(this);
panel.add(button6);
this.button7 = new JButton("Auswahlmenü");
button7.setBounds(40, 200, 300, 25);
button7.addActionListener(this);
panel.add(button7);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Depot...");
if(e.getSource() == button) {
frame.dispose();
GeldEinzahlenFrame geldEinzahlenFrame = new GeldEinzahlenFrame(bs);
}
else if(e.getSource() == button2) {
frame.dispose();
GeldAuszahlenFrame geldAuszahlenFrame = new GeldAuszahlenFrame(bs);
}
else if(e.getSource() == button3) {
frame.dispose();
KontoauszugFrame kontoauszugFrame = new KontoauszugFrame(bs);
}
else if(e.getSource() == button4) {
frame.dispose();
SaldoFrame saldoFrame = new SaldoFrame(bs);
}
else if(e.getSource() == button5) {
frame.dispose();
AktienKaufenFrame aktienKaufenFrame = new AktienKaufenFrame(bs);
}
else if(e.getSource() == button6) {
frame.dispose();
AktienAnzeigenFrame aktienAnzeigenFrame = new AktienAnzeigenFrame(bs);
}
else if(e.getSource() == button7) {
frame.dispose();
AuswahlmenüFrame auswahlmenüFrame = new AuswahlmenüFrame(bs);
}
else {
frame.dispose();
FehlerFrame fehlerFrame = new FehlerFrame(bs);
}
}
}

View File

@ -1,103 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AuswahlmenüFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private Banksystem bs;
public AuswahlmenüFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Auswahlmenü");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Konto anlegen");
button.setBounds(40, 50, 300, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Konten auflisten");
button2.setBounds(40, 80, 300, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Konto auswählen");
button3.setBounds(40, 110, 300, 25);
button3.addActionListener(this);
panel.add(button3);
this.button4 = new JButton("Hauptmenü");
button4.setBounds(40, 170, 300, 25);
button4.addActionListener(this);
panel.add(button4);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Auswahlmenü...");
if (e.getSource() == button) {
frame.dispose();
KontoAnlegenFrame kontoAnlegenFrame = new KontoAnlegenFrame(bs);
} else if (e.getSource() == button2) {
frame.dispose();
KontoListingFrame kontoListingFrame = new KontoListingFrame(bs);
} else if (e.getSource() == button3) {
frame.dispose();
KontoAuswahlFrame kontoAuswahlFrame = new KontoAuswahlFrame(bs);
}
else if (e.getSource() == button4) {
frame.dispose();
HauptmenüFrame hauptmenüFrame = new HauptmenüFrame(bs);
}
else {
frame.dispose();
FehlerFrame fehlerFrame = new FehlerFrame(bs);
}
}
}

View File

@ -1,131 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AuswahlmenüGirokontoFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
private Banksystem bs;
public AuswahlmenüGirokontoFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Auswahlmenü Girokonto");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Geld einzahlen");
button.setBounds(40, 50, 300, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Geld abheben");
button2.setBounds(40, 80, 300, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Kontoauszug");
button3.setBounds(40, 110, 300, 25);
button3.addActionListener(this);
panel.add(button3);
this.button4 = new JButton("Saldo");
button4.setBounds(40, 140, 300, 25);
button4.addActionListener(this);
panel.add(button4);
this.button5 = new JButton("Überweisung");
button5.setBounds(40, 170, 300, 25);
button5.addActionListener(this);
panel.add(button5);
this.button6 = new JButton("Auswahlmenü");
button6.setBounds(40, 200, 300, 25);
button6.addActionListener(this);
panel.add(button6);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Girokonto...");
if(e.getSource() == button) {
frame.dispose();
GeldEinzahlenFrame geldEinzahlenFrame = new GeldEinzahlenFrame(bs);
}
else if(e.getSource() == button2) {
frame.dispose();
GeldAuszahlenFrame geldAuszahlenFrame = new GeldAuszahlenFrame(bs);
}
else if(e.getSource() == button3) {
frame.dispose();
KontoauszugFrame kontoauszugFrame = new KontoauszugFrame(bs);
}
else if(e.getSource() == button4) {
frame.dispose();
SaldoFrame saldoFrame = new SaldoFrame(bs);
}
else if(e.getSource() == button5) {
frame.dispose();
ÜberweisungsFrame überweisungsFrame = new ÜberweisungsFrame(bs);
}
else if(e.getSource() == button6) {
frame.dispose();
AuswahlmenüFrame auswahlmenüFrame = new AuswahlmenüFrame(bs);
}
else {
frame.dispose();
FehlerFrame fehlerFrame = new FehlerFrame(bs);
}
}
}

View File

@ -1,124 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class AuswahlmenüSparkontoFrame implements ActionListener{
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private Banksystem bs;
public AuswahlmenüSparkontoFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Auswahlmenü Sparkonto");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Geld einzahlen");
button.setBounds(40, 50, 300, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Geld abheben");
button2.setBounds(40, 80, 300, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Kontoauszug");
button3.setBounds(40, 110, 300, 25);
button3.addActionListener(this);
panel.add(button3);
this.button4 = new JButton("Saldo");
button4.setBounds(40, 140, 300, 25);
button4.addActionListener(this);
panel.add(button4);
this.button5 = new JButton("Auswahlmenü");
button5.setBounds(40, 170, 300, 25);
button5.addActionListener(this);
panel.add(button5);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Sparkonto...");
if(e.getSource() == button) {
frame.dispose();
GeldEinzahlenFrame geldEinzahlenFrame = new GeldEinzahlenFrame(bs);
}
else if(e.getSource() == button2) {
frame.dispose();
GeldAuszahlenFrame geldAuszahlenFrame = new GeldAuszahlenFrame(bs);
}
else if(e.getSource() == button3) {
frame.dispose();
KontoauszugFrame kontoauszugFrame = new KontoauszugFrame(bs);
}
else if(e.getSource() == button4) {
frame.dispose();
SaldoFrame saldoFrame = new SaldoFrame(bs);
}
else if(e.getSource() == button5) {
frame.dispose();
AuswahlmenüFrame auswahlmenüFrame = new AuswahlmenüFrame(bs);
}
else {
frame.dispose();
FehlerFrame fehlerFrame = new FehlerFrame(bs);
}
}
}

View File

@ -1,72 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class FehlerFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JLabel label;
private JLabel label2;
private Banksystem bs;
public FehlerFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Fehlermeldung");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Ein Fehler ist aufgetreten");
label.setBounds(-10, 20, 300, 25);
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label);
this.label2 = new JLabel("Bitte kehren Sie zum Hauptmenü zurück.");
label2.setBounds(-10, 40, 300, 50);
label2.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label2);
this.button = new JButton("Zurück zum Hauptmenü");
button.setBounds(45, 120, 200, 25);
button.setHorizontalAlignment(SwingConstants.CENTER);
button.addActionListener(this);
panel.add(button);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Fehlermeldung...");
if (e.getSource() == button) {
frame.dispose();
HauptmenüFrame hmf = new HauptmenüFrame(bs);
}
}
}

View File

@ -1,153 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class GeldAuszahlenFrame implements ActionListener{
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JTextArea output;
private JTextArea output2;
private JTextField input;
private JTextField input2;
private JLabel label;
private JLabel label2;
private Banksystem bs;
public GeldAuszahlenFrame(Banksystem bs){
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Geld auszahlen");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kontonummer");
label.setBounds(10, 10, 100, 25);
panel.add(label);
this.input = new JTextField();
input.setBounds(140, 10, 120, 25);
panel.add(input);
this.label2 = new JLabel("Betrag (€)");
label2.setBounds(10, 40, 100, 25);
panel.add(label2);
this.input2 = new JTextField();
input2.setBounds(140, 40, 120, 25);
panel.add(input2);
this.output2 = new JTextArea();
output2.setBounds(70, 120, 250, 100);
output2.setEditable(false);
panel.add(output2);
this.button2 = new JButton("Geld auszahlen");
button2.setBounds(140, 85, 120, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Zurück");
button3.setBounds(140, 230, 120, 25);
button3.addActionListener(this);
panel.add(button3);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Geld auszahlen...");
if(e.getSource() == button){
long kontostand = bs.getKontostand(Integer.parseInt(input.getText())) / 100;
output.append("Kontostand beträgt " + kontostand + "€");
input.setText("");
}
else if(e.getSource() == button2) {
try {
boolean erfolg = bs.geldAuszahlen(Integer.parseInt(input.getText()), (long) Double.parseDouble(input2.getText()) * 100);
long neuerKontostand = bs.getKontostand(Integer.parseInt(input.getText()));
output2.append("Auszahlung" + ((!erfolg)? " nicht" : "" ) + " erfolgreich.\tneuer Kontostand: " + neuerKontostand / 100 + "€");
input.setText("");
input2.setText("");
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
else if(e.getSource() == button3) {
if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Sparkonto) {
frame.dispose();
AuswahlmenüSparkontoFrame asf = new AuswahlmenüSparkontoFrame(bs);
}
else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Girokonto) {
frame.dispose();
AuswahlmenüGirokontoFrame agf = new AuswahlmenüGirokontoFrame(bs);
}
else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Depot) {
frame.dispose();
AuswahlmenüDepotFrame adf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}
}

View File

@ -1,134 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class GeldEinzahlenFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JLabel label;
private JLabel label2;
private JTextField input;
private JTextField input2;
private JTextArea output;
private JButton button;
private JButton button2;
private JButton button3;
private Banksystem bs;
public GeldEinzahlenFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Geld einzahlen");
frame.setSize(400, 480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kontonummer");
label.setBounds(10, 20, 100, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(140, 20, 165, 25);
panel.add(input);
this.label2 = new JLabel("Betrag (€)");
label2.setBounds(10, 50, 80, 25);
panel.add(label2);
this.input2 = new JTextField(20);
input2.setBounds(140, 50, 165, 25);
panel.add(input2);
this.output = new JTextArea();
output.setBounds(40, 100, 300, 200);
output.setEditable(false);
panel.add(output);
this.button = new JButton("Einzahlen");
button.addActionListener(this);
button.setBounds(40, 305, 300, 25);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.addActionListener(this);
button2.setBounds(40, 410, 300, 25);
panel.add(button2);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Geld einzahlen...");
if (e.getSource() == button) {
try {
bs.geldEinzahlen(Integer.parseInt(input.getText()),
(long) (Double.parseDouble(input2.getText()) * 100));
output.append("Einzahlung von " + input2.getText() + " erfolgreich\nNeuer Kontostand beträgt "
+ (bs.getKontostand(Integer.parseInt(input.getText())) / 100) + " €\n");
} catch (IOException e1) {
e1.printStackTrace();
}
}
else if (e.getSource() == button2) {
if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Sparkonto) {
frame.dispose();
AuswahlmenüSparkontoFrame asf = new AuswahlmenüSparkontoFrame(bs);
}
else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Girokonto) {
frame.dispose();
AuswahlmenüGirokontoFrame agf = new AuswahlmenüGirokontoFrame(bs);
}
else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Depot) {
frame.dispose();
AuswahlmenüDepotFrame adf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}
}

View File

@ -1,94 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class HauptmenüFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JLabel label;
private JLabel label2;
private Banksystem bs;
public HauptmenüFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Hauptmenü");
frame.setSize(300, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel(bs.getBankname());
label.setBounds(10, 10, 200, 25);
panel.add(label);
this.label2 = new JLabel("Hauptmenü");
label2.setBounds(10, 30, 200, 25);
panel.add(label2);
this.button = new JButton("Neuen Kunden anlegen");
button.setBounds(17, 80, 250, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Bei Kunden einloggen");
button2.setBounds(17, 110, 250, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Beenden");
button3.setBounds(17, 140, 250, 25);
button3.addActionListener(this);
panel.add(button3);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Hauptmenü...");
if (e.getSource() == button) {
frame.dispose();
KundeAnlegen kundeAnlegen = new KundeAnlegen(bs);
}
else if (e.getSource() == button2) {
frame.dispose();
LoginFrame loginFrame = new LoginFrame(bs);
}
else if (e.getSource() == button3) {
frame.dispose();
}
}
}

View File

@ -1,105 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class KontoAnlegenFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private JTextArea output;
private Banksystem bs;
public KontoAnlegenFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Konto anlegen");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Girokonto");
button.setBounds(10, 10, 95, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Sparkonto");
button2.setBounds(145, 10, 95, 25);
button2.addActionListener(this);
panel.add(button2);
this.button3 = new JButton("Depot");
button3.setBounds(280, 10, 95, 25);
button3.addActionListener(this);
panel.add(button3);
this.button4 = new JButton("Auswahlmenü");
button4.setBounds(10, 320, 120, 25);
button4.addActionListener(this);
panel.add(button4);
this.output = new JTextArea();
output.setBounds(10, 50, 365, 250);
output.setEditable(false);
panel.add(output);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Konto anlegen...");
try {
if (e.getSource() == button) {
int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(), Kontoart.Girokonto);
output.append("Girokonto mit der Kontonummer " + kontonummer + " wurde angelegt\n");
} else if (e.getSource() == button2) {
int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(), Kontoart.Sparkonto);
output.append("Sparkonto mit der Kontonummer " + kontonummer + " wurde angelegt\n");
} else if (e.getSource() == button3) {
int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(), Kontoart.Depot);
output.append("Depot mit der Kontonummer " + kontonummer + " wurde angelegt\n");
} else if (e.getSource() == button4) {
frame.dispose();
AuswahlmenüFrame amf = new AuswahlmenüFrame(bs);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1,95 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class KontoAuswahlFrame implements ActionListener{
private JPanel panel;
private JFrame frame;
private JButton button;
private JLabel label;
private JTextField input;
private Banksystem bs;
public KontoAuswahlFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Kontoauswahl");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kontonummer");
label.setBounds(10, 17, 80, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(120, 20, 80, 20);
panel.add(input);
this.button = new JButton("Login");
button.setBounds(100, 100, 80, 25);
button.addActionListener(this);
panel.add(button);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Login...");
try {
if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Sparkonto) {
frame.dispose();
AuswahlmenüSparkontoFrame auswahlmenüSparkontoFrame = new AuswahlmenüSparkontoFrame(bs);
} else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Girokonto) {
frame.dispose();
AuswahlmenüGirokontoFrame auswahlmenüGirokontoFrame = new AuswahlmenüGirokontoFrame(bs);
} else if(bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Depot) {
frame.dispose();
AuswahlmenüDepotFrame auswahlmenüDepotFrame = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame fehlerFrame = new FehlerFrame(bs);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1,84 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class KontoListingFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JButton button2;
private JTextArea output;
private Banksystem bs;
public KontoListingFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Kontoliste");
frame.setSize(500, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.button = new JButton("Kontoliste abrufen");
button.setBounds(10, 10, 160, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Auswahlmenü");
button2.setBounds(215, 10, 260, 25);
button2.addActionListener(this);
panel.add(button2);
this.output = new JTextArea();
output.setBounds(10, 60, 465, 280);
output.setEditable(false);
panel.add(output);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Kontenliste abrufen...");
if (e.getSource() == button) {
String[] konten = bs.getKontenlisteForKunde();
if (konten.length > 0) {
Arrays.stream(konten).forEach(output::append);
}
output.append("Keine Konten vorhanden.");
} else if (e.getSource() == button2) {
frame.dispose();
AuswahlmenüFrame auswahlmenü = new AuswahlmenüFrame(bs);
}
}
}

View File

@ -1,130 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class KontoauszugFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JLabel label;
private JTextField input;
private JTextArea output;
private JButton button;
private JButton button2;
private Banksystem bs;
public KontoauszugFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Kontoauszug");
frame.setSize(450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kontonummer");
label.setBounds(10, 20, 100, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(100, 20, 60, 25);
panel.add(input);
this.output = new JTextArea();
output.setBounds(10, 50, 414, 150);
output.setEditable(false);
panel.add(output);
this.button = new JButton("Kontoauszug drucken");
button.setBounds(265, 20, 160, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.setBounds(170, 220, 100, 25);
button2.addActionListener(this);
panel.add(button2);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Kontoauszug drucken...");
if (e.getSource() == button) {
if (e.getSource() == button) {
String[] kontoauszug = bs.erstelleKontoauszug(Integer.parseInt(input.getText()));
if (kontoauszug.length > 0) {
for (String ka : kontoauszug) {
output.append(ka + "\n");
}
} else {
output.setText("Keine Transaktionen vorhanden!");
}
}
}
else if (e.getSource() == button2) {
if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Sparkonto) {
frame.dispose();
AuswahlmenüSparkontoFrame asf = new AuswahlmenüSparkontoFrame(bs);
}
else if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Girokonto) {
frame.dispose();
AuswahlmenüGirokontoFrame agf = new AuswahlmenüGirokontoFrame(bs);
}
else if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Depot) {
frame.dispose();
AuswahlmenüDepotFrame adf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}
}

View File

@ -1,119 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class KundeAnlegen extends JFrame implements ActionListener {
private JPanel panel;
private JLabel label;
private JLabel label2;
private JLabel label3;
private JTextField input;
private JTextField input2;
private JTextField input3;
private JFrame frame;
private JButton button;
private JButton button2;
private JTextArea output;
private Banksystem bs;
public KundeAnlegen(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Kunde anlegen");
frame.setSize(400, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.add(panel);
frame.setResizable(false);
panel.setLayout(null);
this.label = new JLabel("Name");
label.setBounds(10, 20, 80, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(120, 20, 165, 20);
panel.add(input);
this.label2 = new JLabel("Nachname");
label2.setBounds(10, 50, 80, 25);
panel.add(label2);
this.input2 = new JTextField(20);
input2.setBounds(120, 50, 165, 20);
panel.add(input2);
this.label3 = new JLabel("Alter");
label3.setBounds(10, 80, 80, 25);
panel.add(label3);
this.input3 = new JTextField(20);
input3.setBounds(120, 80, 165, 20);
panel.add(input3);
this.button = new JButton("Kunde anlegen");
button.addActionListener(this);
button.setBounds(120, 400, 165, 20);
panel.add(button);
this.button2 = new JButton("Hauptmenü");
button2.addActionListener(this);
button2.setBounds(120, 430, 165, 20);
panel.add(button2);
this.output = new JTextArea();
output.setBounds(10, 140, 365, 230);
output.setEditable(false);
panel.add(output);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Kunde anlegen...");
if (e.getSource() == button) {
try {
bs.addNewKunde(input.getText(), input2.getText(), Integer.parseInt(input3.getText()));
output.append("Ihr Kundenkonto mit der ID [" + bs.getKundenID() + "] wurde erfolgreich angelegt.\n");
input.setText("");
input2.setText("");
input3.setText("");
} catch (Exception ex) {
ex.printStackTrace();
}
} else if (e.getSource() == button2) {
frame.dispose();
HauptmenüFrame hmf = new HauptmenüFrame(bs);
}
}
}

View File

@ -1,85 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class LoginFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JButton button;
private JTextField input;
private JLabel label;
private Banksystem bs;
public LoginFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Login");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kunden-ID");
label.setBounds(10, 17, 80, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(120, 20, 80, 20);
panel.add(input);
this.button = new JButton("Login");
button.setBounds(100, 100, 80, 25);
button.addActionListener(this);
panel.add(button);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Login...");
try {
bs.setCurrentKunde(bs.getKunde(Integer.parseInt(input.getText())));
if (bs.getCurrentKunde() != null) {
frame.dispose();
AuswahlmenüFrame amf = new AuswahlmenüFrame(bs);
} else {
frame.dispose();
FehlerFrame lff = new FehlerFrame(bs);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1,130 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class SaldoFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JLabel label;
private JTextField input;
private JTextField input2;
private JTextArea output;
private JButton button;
private JButton button2;
private Banksystem bs;
public SaldoFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Saldo");
frame.setSize(450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Kontonummer");
label.setBounds(10, 10, 100, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(100, 10, 60, 25);
panel.add(input);
this.label = new JLabel("Anzahl");
label.setBounds(10, 40, 100, 25);
panel.add(label);
this.input2 = new JTextField(20);
input2.setBounds(100, 40, 60, 25);
panel.add(input2);
this.output = new JTextArea();
output.setBounds(10, 80, 414, 170);
output.setEditable(false);
panel.add(output);
this.button = new JButton("Saldo drucken");
button.setBounds(265, 10, 160, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.setBounds(265, 40, 160, 25);
button2.addActionListener(this);
panel.add(button2);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Saldo...");
try {
if (e.getSource() == button) {
long saldo = bs.saldoBestimmen(Integer.parseInt(input.getText()), Integer.parseInt(input2.getText()));
output.append(
"Der Saldo nach " + input2.getText() + " Kontobewegungen beträgt " + (saldo / 100d) + " Euro.");
} else if (e.getSource() == button2) {
if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Sparkonto) {
frame.dispose();
AuswahlmenüSparkontoFrame asf = new AuswahlmenüSparkontoFrame(bs);
}
else if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Girokonto) {
frame.dispose();
AuswahlmenüGirokontoFrame agf = new AuswahlmenüGirokontoFrame(bs);
}
else if (bs.checkKontoart(Integer.parseInt(input.getText())) == Kontoart.Depot) {
frame.dispose();
AuswahlmenüDepotFrame adf = new AuswahlmenüDepotFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1,144 +0,0 @@
package de.hs_mannheim.informatik.bank.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class ÜberweisungsFrame implements ActionListener {
private JPanel panel;
private JFrame frame;
private JLabel label;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JTextField input;
private JTextField input2;
private JTextField input3;
private JTextField input4;
private JTextArea output;
private JButton button;
private JButton button2;
private Banksystem bs;
public ÜberweisungsFrame(Banksystem bs) {
this.bs = bs;
this.panel = new JPanel();
this.frame = new JFrame();
frame.setTitle(bs.getBankname() + " - Überweisung");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.add(panel);
panel.setLayout(null);
this.label = new JLabel("Starkonto");
label.setBounds(40, 50, 80, 25);
panel.add(label);
this.input = new JTextField(20);
input.setBounds(120, 50, 165, 25);
panel.add(input);
this.label2 = new JLabel("Zielkonto");
label2.setBounds(40, 80, 80, 25);
panel.add(label2);
this.input2 = new JTextField(20);
input2.setBounds(120, 80, 165, 25);
panel.add(input2);
this.label3 = new JLabel("Betrag");
label3.setBounds(40, 110, 80, 25);
panel.add(label3);
this.input3 = new JTextField(20);
input3.setBounds(120, 110, 165, 25);
panel.add(input3);
this.label4 = new JLabel("Verwendungszweck");
label4.setBounds(40, 140, 80, 25);
panel.add(label4);
this.input4 = new JTextField(20);
input4.setBounds(120, 140, 165, 25);
panel.add(input4);
this.output = new JTextArea();
output.setBounds(40, 170, 300, 100);
output.setEditable(false);
panel.add(output);
this.button = new JButton("Überweisung durchführen");
button.setBounds(40, 280, 300, 25);
button.addActionListener(this);
panel.add(button);
this.button2 = new JButton("Zurück");
button2.setBounds(40, 310, 300, 25);
button2.addActionListener(this);
panel.add(button2);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Überweisung durchführen...");
if (e.getSource() == button) {
try {
int startkonto = Integer.parseInt(input.getText());
int zielkonto = Integer.parseInt(input2.getText());
double betrag = Double.parseDouble(input3.getText());
String verwendungszweck = input4.getText();
boolean erfolg = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100),
verwendungszweck);
output.append("Überweisung" + ((!erfolg) ? " nicht" : "") + " erfolgreich ausgeführt.");
input.setText("");
input2.setText("");
input3.setText("");
input4.setText("");
} catch (Exception ex) {
ex.printStackTrace();
}
}
else if (e.getSource() == button2) {
frame.dispose();
AuswahlmenüGirokontoFrame amgk = new AuswahlmenüGirokontoFrame(bs);
} else {
frame.dispose();
FehlerFrame ff = new FehlerFrame(bs);
}
}
}

View File

@ -0,0 +1,780 @@
package de.hs_mannheim.informatik.bank.ui;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;
import de.hs_mannheim.informatik.bank.domain.Kontoart;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class UI {
private Banksystem bs;
Scanner sc = new Scanner(System.in);
public UI(Banksystem bs) {
this.bs = bs;
hauptmenü();
}
private void hauptmenü() {
System.out.println("Willkommen bei der " + bs.getBankname() + "!");
mainloop: while (true) {
System.out.println();
System.out.println("--------");
System.out.println("Hauptmenü");
System.out.println("0 -> Kundenkonto erstellen");
System.out.println("1 -> Login");
System.out.println("2 -> Konto anlegen");
System.out.println("3 -> Konten anzeigen");
System.out.println("4 -> Konto auswählen");
System.out.println("6 -> Negativ konten anzeigen");
System.out.println("7 -> Geldbestand der Bank anzeigen");
System.out.println("8 -> Min/Max/Avg Kontostände");
System.out.println("9 -> Konten anzeigen");
System.out.println("10 -> Kunden anzeigen");
System.out.println("5 -> Beenden");
System.out.println();
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
System.out.println();
try {
switch (input) {
case 0:
kundeRegistrieren();
break;
case 1:
login();
break;
case 2:
kontoAnlegen();
break;
case 3:
kontenAnzeigen();
break;
case 4:
kontoAuswählen();
break;
case 6:
negativKontenAnzeigen();
break;
case 7:
geldbestandAnzeigen();
break;
case 8:
minMaxAvgKontostände();
break;
case 9:
mapKontenAnzeigen();
break;
case 10:
mapKundenAnzeigen();
break;
case 5:
break mainloop;
}
} catch (Exception e) {
System.err.println(e.getLocalizedMessage());
}
System.out.println();
}
System.out.println("Auf Wiedersehen!");
} // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ
private void mapKundenAnzeigen() {
System.out.println("Kunden anzeigen: ");
bs.mapKundeToString();
}
private void mapKontenAnzeigen() {
System.out.println("Konten anzeigen: ");
bs.mapKontoToString();
}
private void minMaxAvgKontostände() {
System.out.println("Min/Max/Avg Kontostände: ");
bs.getMinMaxAvgBalances();
}
private void geldbestandAnzeigen() {
System.out.println("Geldbestand der Bank: " + (bs.getAllBalances() / 100) + "€");
}
private void negativKontenAnzeigen() {
System.out.println("Negativ Konten: ");
bs.getNegativeKontostände();
}
private void kundeRegistrieren(){
boolean running = true;
while(running){
System.out.println("Bitte geben Sie die folgenden Daten ein: ");
System.out.print("Vorname: ");
String vorname = sc.nextLine();
System.out.print("Nachname: ");
String nachname = sc.nextLine();
System.out.print("Alter:");
int alter = Integer.parseInt(sc.nextLine());
try {
bs.setCurrentKunde(bs.addNewKunde(vorname, nachname, alter));
} catch (Exception e) {
System.err.println("Kundenkonto konnte nicht erstellt werden!");
e.printStackTrace();
break;
}
System.out.println("Ihr Kundenkonto mit der ID [" + bs.getKundenID() + "] wurde erstellt.");
running = false;
}
}
private void login(){
boolean running = true;
while(running){
try {
System.out.println("Bitte geben Sie Ihre Kunden ID ein: ");
System.out.print("> ");
int kundenID = Integer.parseInt(sc.nextLine());
bs.setCurrentKunde(bs.getKunde(kundenID));
if(bs.getCurrentKunde() != null){
System.out.println("Login erfolgreich!");
running = false;
} else {
System.err.println("Kunde nicht gefunden!");
break;
}
} catch (Exception e) {
System.err.println("Login fehlgeschlagen!");
e.printStackTrace();
running = false;
}
}
}
private void kontoAnlegen() throws IOException{
boolean running = true;
while(running){
try {
System.out.println("Bitte geben Sie Ihre Kunden ID ein: ");
System.out.print("> ");
int kundenID = Integer.parseInt(sc.nextLine());
bs.setCurrentKunde(bs.getKunde(kundenID));
if(bs.getCurrentKunde() != null){
System.out.println("Welche Art von Konto möchten Sie anlegen?");
Kontoart[] kontoarten = Kontoart.values();
for (int i = 0; i < kontoarten.length; i++) {
System.out.println(" " + kontoarten[i] + " " + "(" + (i+1) + ")");
}
System.out.print("> ");
int auswahl = Integer.parseInt(sc.nextLine());
int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(),kontoarten[auswahl-1]);
System.out.println("Ihr ausgewähltes Konto mit der " + kontonummer + " neu angelegt.");
running = false;
} else {
System.err.println("Kunde nicht gefunden!");
break;
}
} catch (Exception e) {
System.err.println("Konto konnte nicht angelegt werden!");
e.printStackTrace();
running = false;
}
}
}
private void kontenAnzeigen() {
try {
String[] konten = bs.getKontenlisteForKunde();
if (konten.length > 0) {
System.out.println("Sie haben aktuell folgende Konten zur Verfügung:");
Stream<String> stream = Arrays.stream(konten);
stream.forEach(s -> System.out.println(s));
} else {
System.out.println("Sie haben bisher keine Konten angelegt");
}
} catch (Exception e) {
System.err.println("Konten konnten nicht laden!");
e.printStackTrace();
}
}
private void aktienAnzeigen(){
try {
String[] aktien = bs.getAktienliste();
if (aktien.length > 0) {
System.out.println("Sie haben folgende Aktien im Besitz: ");
for (String s : aktien) {
System.out.println(s);
}
} else {
System.out.println("Bisher keine Aktien gekauft.");
}
} catch (Exception e) {
System.err.println("Aktien konnten nicht laden!");
e.printStackTrace();
}
}
private void kontoAuswählen(){
boolean running = true;
kontenAnzeigen();
System.out.println("Bitte geben Sie die Kontonummer ihres Kontos ein mit dem Sie weiterarbeiten wollen");
int kontonummer = Integer.parseInt(sc.nextLine());
if(bs.checkKontoart(kontonummer).equals(Kontoart.Sparkonto)){
if(bs.getKonten().containsKey(kontonummer)){
while(running){
System.out.println("--------");
System.out.println("Kontomenü");
System.out.println("0 -> Geld einzahlen");
System.out.println("1 -> Geld auszahlen");
System.out.println("2 -> Kontoauszug drucken");
System.out.println("3 -> Saldo abfragen");
System.out.println("4 -> Zurück zum Hauptmenü");
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
System.out.println();
try {
switch (input) {
case 0:
geldEinzahlen();
break;
case 1:
geldAuszahlen();
break;
case 2:
kontoauszugDrucken();
break;
case 3:
saldoAbfragen();
break;
case 4:
running = false;
break;
}
} catch (Exception e) {
System.err.println(e.getLocalizedMessage());
}
System.out.println();
}
} else {
System.out.println("Kontonummer nicht gefunden");
}
}
else if (bs.checkKontoart(kontonummer).equals(Kontoart.Girokonto)){
if(bs.getKonten().containsKey(kontonummer)){
while(running) {
System.out.println("--------");
System.out.println("Kontomenü");
System.out.println("0 -> Geld einzahlen");
System.out.println("1 -> Geld auszahlen");
System.out.println("2 -> Kontoauszug drucken");
System.out.println("3 -> Überweisung beauftragen");
System.out.println("4 -> Saldo abfragen");
System.out.println("5 -> Zurück zum Hauptmenü");
System.out.println();
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
System.out.println();
try {
switch (input) {
case 0:
geldEinzahlen();
break;
case 1:
geldAuszahlen();
break;
case 2:
kontoauszugDrucken();
break;
case 3:
überweisungBeauftragen();
break;
case 4:
saldoAbfragen();
break;
case 5:
running = false;
break;
}
} catch (Exception e) {
System.err.println(e.getLocalizedMessage());
}
System.out.println();
}
} else {
System.out.println("Kontonummer nicht gefunden");
}
}
else if (bs.checkKontoart(kontonummer).equals(Kontoart.Depot)){
if(bs.getKonten().containsKey(kontonummer)){
while(running) {
System.out.println("--------");
System.out.println("Kontomenü");
System.out.println("0 -> Geld einzahlen");
System.out.println("1 -> Geld auszahlen");
System.out.println("2 -> Kontoauszug drucken");
System.out.println("3 -> Überweisung beauftragen");
System.out.println("4 -> Saldo abfragen");
System.out.println("5 -> Aktien kaufen");
System.out.println("6 -> Aktien anzeigen");
System.out.println("7 -> Zurück zum Hauptmenü");
System.out.println();
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
System.out.println();
try {
switch (input) {
case 0:
geldEinzahlen();
break;
case 1:
geldAuszahlen();
break;
case 2:
kontoauszugDrucken();
break;
case 3:
überweisungBeauftragen();
break;
case 4:
saldoAbfragen();
break;
case 5:
aktienKaufen();
break;
case 6:
aktienAnzeigen();
break;
case 7:
running = false;
break;
}
} catch (Exception e) {
System.err.println(e.getLocalizedMessage());
}
System.out.println();
}
} else {
System.out.println("Kontonummer nicht gefunden");
}
} else {
System.out.println("Kontonummer nicht gefunden");
}
}
private void geldEinzahlen() throws Exception {
int kontonummer = 0;
double betrag = 0;
boolean running = true;
while(running) {
System.out.print("Bitte geben Sie ihre Kontonummer ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.print("Bitte geben Sie den Betrag ein: ");
try {
betrag = Double.parseDouble(sc.nextLine());
} catch (NumberFormatException nfe) {
System.err.println("Betrag muss eine Zahl sein!");
continue;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (NumberFormatException nfe) {
System.err.println("Kontonummer muss eine Zahl sein!");
continue;
}
running = false;
}
long neuerKontostand = bs.geldEinzahlen(kontonummer, (long) betrag * 100);
System.out.printf("Einzahlung erfolgreich, Ihr neuer Kontostand beträgt: %.2f€", (neuerKontostand) / 100.0);
}
private void geldAuszahlen() throws Exception {
int kontonummer = 0;
double betrag = 0;
boolean running = true;
while(running){
System.out.print("Bitte geben Sie ihre Kontonummer ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.println("Ihr aktueller Kontostand beträgt " + bs.getKontostand(kontonummer) / 100 + "€");
System.out.print("Bitte geben Sie den Betrag zum abheben ein: ");
try {
betrag = Double.parseDouble(sc.nextLine());
} catch (NumberFormatException nfe) {
System.err.println("Betrag muss eine Zahl sein!");
continue;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (NumberFormatException nfe) {
System.err.println("Kontonummer muss eine Zahl sein!");
continue;
}
running = false;
}
boolean erfolg = bs.geldAuszahlen(kontonummer, (long) betrag * 100);
long neuerKontostand = bs.getKontostand(kontonummer) / 100;
System.out.printf("Auszahlung" + ((!erfolg)? " nicht" : "" ) + " erfolgreich. ");
System.out.println("Ihr neuer Kontostand beträgt: " + neuerKontostand + "€");
}
private void kontoauszugDrucken() {
boolean running = true;
while(running){
try {
System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: ");
int kontonummer = Integer.parseInt(sc.nextLine());
System.out.println("Auszug für Konto " + kontonummer);
String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer);
try {
Stream<String> stream = Arrays.stream(kontobewegungen);
stream.forEach(System.out::println);
running = false;
} catch (Exception e) {
System.out.println("Keine Kontobewegungen vorhanden");
running = false;
}
} catch (Exception e) {
System.err.println("Kontoauszug fehlgeschlagen!");
e.printStackTrace();
break;
}
}
}
private void überweisungBeauftragen() throws Exception {
boolean running = true;
int startkonto = 0;
int zielkonto = 0;
double betrag = 0;
String verwendungszweck = "";
while (running) {
System.out.print("Bitte geben Sie die Kontonummer des Ausgangskontos der Überweisung ein: ");
try {
startkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(startkonto)){
System.out.print("Bitte geben Sie die Kontonummer des Zielkontos der Überweisung ein: ");
try {
zielkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(zielkonto)){
System.out.print("Bitte geben Sie den gewünschten Überweisungsbetrag ein: ");
try {
betrag = Double.parseDouble(sc.nextLine());
} catch (Exception e) {
System.err.println("Betrag muss eine Zahl sein!");
e.printStackTrace();
break;
}
System.out.print("Bitte geben Sie den Verwendungszweck ein: ");
verwendungszweck = sc.nextLine();
} else {
System.out.println("Zielkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Startkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck);
System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
}
private void saldoAbfragen() {
boolean running = true;
int kontonummer = 0;
int anzahl = 0;
while(running) {
System.out.print("Geben Sie bitte die Kontonummer des gewünschten Kontos ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.print("Bitte geben Sie die Anzahl der Kontobewegungen für den Saldo ein: ");
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
long saldo = bs.saldoBestimmen(kontonummer, anzahl);
System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d));
}
private void aktienKaufen() {
boolean running = true;
int kontonummer = 0;
int anzahl = 0;
String aktienName = "";
while (running) {
System.out.println("Aktien kaufen");
System.out.print("Bitte geben Sie die Kontonummer ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.println("Folgende Aktien sind Verfügbar");
System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)");
System.out.print("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:");
aktienName = sc.nextLine();
System.out.println("Preis der Aktie");
System.out.println(bs.getAktienPreis(aktienName));
System.out.print("Bitte geben Sie die Anzahld er Aktien ein, die sie kaufen möchten: ");
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("Die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName);
System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. ");
}
}