From 3e676fa6d0c9b00b5d2dc4323421feac22038f74 Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Wed, 9 Nov 2022 14:15:09 +0100 Subject: [PATCH] Quick and dirty GUI integration. --- .../de/hs_mannheim/informatik/bank/Main.java | 12 +++- .../bank/gui/KontoAnlegenFrame.java | 62 +++++++++++++++++++ .../bank/gui/KontoListingFrame.java | 62 +++++++++++++++++++ .../informatik/bank/{ui => tui}/UI.java | 4 +- 4 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java rename Bank-Beispiel/src/de/hs_mannheim/informatik/bank/{ui => tui}/UI.java (98%) diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java index 16a794f..9a77c72 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java @@ -1,13 +1,21 @@ package de.hs_mannheim.informatik.bank; import de.hs_mannheim.informatik.bank.facade.Banksystem; -import de.hs_mannheim.informatik.bank.ui.UI; +import de.hs_mannheim.informatik.bank.gui.KontoAnlegenFrame; +import de.hs_mannheim.informatik.bank.gui.KontoListingFrame; public class Main { public static void main(String[] args) throws Exception { Banksystem bs = new Banksystem("Spaßkasse Mannheim"); - UI ui = new UI(bs); + // UI ui = new UI(bs); + + KontoAnlegenFrame kaf = new KontoAnlegenFrame(bs); + kaf.setVisible(true); + + + KontoListingFrame klf = new KontoListingFrame(bs); + klf.setVisible(true); } } \ No newline at end of file diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java new file mode 100644 index 0000000..90c2c67 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java @@ -0,0 +1,62 @@ +package de.hs_mannheim.informatik.bank.gui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +public class KontoAnlegenFrame extends JFrame implements ActionListener { + private JTextField eingabe; + private JTextArea ausgabe; + private JButton ok; + + private Banksystem bs; + + public KontoAnlegenFrame(Banksystem bs) { + this.bs = bs; + + this.setTitle(bs.getBankname()); + this.setSize(300, 300); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + eingabe = new JTextField(20); + + ausgabe = new JTextArea(5, 20); + ausgabe.setLineWrap(true); + ausgabe.setWrapStyleWord(true); + + // Die Ausgabe automatisch scrollbar machen, wenn Sie nicht + // mehr auf den Bildschirm passen sollte. + JScrollPane sp = new JScrollPane(ausgabe); + + ok = new JButton("Konto anlegen"); + ok.addActionListener(this); + +// Container cp = this.getContentPane(); + this.add(eingabe, "North"); + this.add(sp, "Center"); + this.add(ok, "South"); + } + + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Konto anlegen..."); + + try { + int knr = bs.kontoAnlegen(eingabe.getText(), 1); + + this.ausgabe.append("Neues Konto angelegt: " + knr + "\n"); + } catch (IOException e1) { + e1.printStackTrace(); + } + + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java new file mode 100644 index 0000000..aef7002 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java @@ -0,0 +1,62 @@ +package de.hs_mannheim.informatik.bank.gui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +public class KontoListingFrame extends JFrame implements ActionListener { + private JTextField eingabe; + private JTextArea ausgabe; + private JButton ok; + + private Banksystem bs; + + public KontoListingFrame(Banksystem bs) { + this.bs = bs; + + this.setTitle(bs.getBankname()); + this.setSize(300, 300); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + eingabe = new JTextField(20); + + ausgabe = new JTextArea(5, 20); + ausgabe.setLineWrap(true); + ausgabe.setWrapStyleWord(true); + + // Die Ausgabe automatisch scrollbar machen, wenn Sie nicht + // mehr auf den Bildschirm passen sollte. + JScrollPane sp = new JScrollPane(ausgabe); + + ok = new JButton("Kontenliste abrufen"); + ok.addActionListener(this); + + // Container cp = this.getContentPane(); + // this.add(eingabe, "North"); + this.add(sp, "Center"); + this.add(ok, "South"); + } + + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Kontenliste abrufen..."); + + ausgabe.setText(""); + String[] konten = bs.getKontenliste(); + + for (String konto : konten) { + ausgabe.append(konto + "\n"); + } + + + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/UI.java similarity index 98% rename from Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java rename to Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/UI.java index 024ec5f..ec2ae97 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/UI.java @@ -1,4 +1,4 @@ -package de.hs_mannheim.informatik.bank.ui; +package de.hs_mannheim.informatik.bank.tui; import java.io.IOException; import java.util.Scanner; @@ -105,8 +105,10 @@ public class UI { betrag = Double.parseDouble(sc.nextLine()); } catch (NumberFormatException nfe) { System.err.println("Betrag muss eine Kommazahl sein, bitte Eingabe wiederholen!"); + continue; } + ok = true; } while(!ok); long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100);