Compare commits
17 Commits
verlängeru
...
main
Author | SHA1 | Date |
---|---|---|
Berat Kocak | 75f4b13683 | |
Berat Kocak | 0056bdea79 | |
Berat Kocak | 1c6d96fe39 | |
Berat Kocak | b11b2ae858 | |
Berat Kocak | aca14d1590 | |
Berat Kocak | 764af71698 | |
Berat Kocak | 1f2d4b206e | |
Berat Kocak | 50e138bc1f | |
Berat Kocak | 874397badc | |
Berat Kocak | 3dc5790cb7 | |
Berat Kocak | 12c332d77e | |
Berat Kocak | af5961609d | |
Berat Kocak | 5165365c17 | |
Berat Kocak | 462242c4e4 | |
Berat Kocak | 1bc6e0fe7b | |
Berat Kocak | eb3530f793 | |
Berat Kocak | 514303cad9 |
|
@ -0,0 +1,2 @@
|
|||
/.project
|
||||
/.classpath
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
public class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("XYZ");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
public class Test1 {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("ABA");
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
package domainBib;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public abstract class Benutzer {
|
||||
private int kennnummer;
|
||||
abstract public int getKennnummer();
|
||||
abstract public boolean istStudent();
|
||||
}
|
||||
|
||||
class Mitarbeiter extends Benutzer {
|
||||
private int kennnummer;
|
||||
|
||||
public Mitarbeiter(int kennnummer) {
|
||||
this.kennnummer = kennnummer;
|
||||
}
|
||||
|
||||
public int getKennnummer() {
|
||||
return kennnummer;
|
||||
}
|
||||
|
||||
public boolean istStudent() {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -80,6 +80,11 @@ public class Bibliothek {
|
|||
Kunde k3 = new Kunde(false, 3);
|
||||
Kunde k4 = new Kunde(false, 4);
|
||||
Kunde k5 = new Kunde(false, 5);
|
||||
k1.addSchulden(5);
|
||||
k2.addSchulden(5);
|
||||
k3.addSchulden(10);
|
||||
k4.addSchulden(10);
|
||||
k5.addSchulden(10);
|
||||
kundenListe.add(k1);
|
||||
kundenListe.add(k2);
|
||||
kundenListe.add(k3);
|
||||
|
@ -279,10 +284,12 @@ public class Bibliothek {
|
|||
Buch b = (Buch) m;
|
||||
double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum);
|
||||
String titelBuch = b.getTitel();
|
||||
if(kostenBuch>0) {BibliothekGUI.zahlungsFenster(kostenBuch, titelBuch, kennnummer, k);
|
||||
bücherListe.add(b);
|
||||
if(kostenBuch > 0) {
|
||||
k.removeFromList(m);
|
||||
} else {
|
||||
BibliothekGUI.zahlungsFenster(kostenBuch, titelBuch, kennnummer, k);
|
||||
k.addSchulden(kostenBuch);
|
||||
bücherListe.add(b);
|
||||
} else if(kostenBuch == 0){
|
||||
bücherListe.add(b);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
|
@ -292,9 +299,10 @@ public class Bibliothek {
|
|||
DVD d = (DVD) m;
|
||||
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
|
||||
String titelDVD = d.getTitel();
|
||||
if(kostenDVD>0) {BibliothekGUI.zahlungsFenster(kostenDVD, titelDVD, kennnummer, k);
|
||||
dvdListe.add(d);
|
||||
k.removeFromList(m);
|
||||
if(kostenDVD>0) {BibliothekGUI.zahlungsFenster(kostenDVD, titelDVD, kennnummer, k);
|
||||
k.addSchulden(kostenDVD);
|
||||
dvdListe.add(d);
|
||||
} else {
|
||||
dvdListe.add(d);
|
||||
k.removeFromList(m);
|
||||
|
@ -305,9 +313,10 @@ public class Bibliothek {
|
|||
CD c = (CD) m;
|
||||
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
|
||||
String titelCD = c.getTitel();
|
||||
if(kostenCD>0) {BibliothekGUI.zahlungsFenster(kostenCD, titelCD, kennnummer, k);
|
||||
cdListe.add(c);
|
||||
k.removeFromList(m);
|
||||
if(kostenCD>0) {BibliothekGUI.zahlungsFenster(kostenCD, titelCD, kennnummer, k);
|
||||
k.addSchulden(kostenCD);
|
||||
cdListe.add(c);
|
||||
} else {
|
||||
cdListe.add(c);
|
||||
k.removeFromList(m);
|
||||
|
@ -318,9 +327,10 @@ public class Bibliothek {
|
|||
Brettspiel bs = (Brettspiel) m;
|
||||
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
|
||||
String titelBS = bs.getTitel();
|
||||
if(kostenBS>0) {BibliothekGUI.zahlungsFenster(kostenBS, titelBS, kennnummer, k);
|
||||
brettspielListe.add(bs);
|
||||
k.removeFromList(m);
|
||||
if(kostenBS>0) {BibliothekGUI.zahlungsFenster(kostenBS, titelBS, kennnummer, k);
|
||||
k.addSchulden(kostenBS);
|
||||
brettspielListe.add(bs);
|
||||
} else {
|
||||
brettspielListe.add(bs);
|
||||
k.removeFromList(m);
|
||||
|
@ -331,9 +341,10 @@ public class Bibliothek {
|
|||
Videospiel vs = (Videospiel) m;
|
||||
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
|
||||
String titelVS = vs.getTitel();
|
||||
if(kostenVS>0) {BibliothekGUI.zahlungsFenster(kostenVS, titelVS, kennnummer, k);
|
||||
videospielListe.add(vs);
|
||||
k.removeFromList(m);
|
||||
if(kostenVS>0) {BibliothekGUI.zahlungsFenster(kostenVS, titelVS, kennnummer, k);
|
||||
k.addSchulden(kostenVS);
|
||||
videospielListe.add(vs);
|
||||
} else {
|
||||
videospielListe.add(vs);
|
||||
k.removeFromList(m);
|
||||
|
@ -535,6 +546,7 @@ public class Bibliothek {
|
|||
ArrayList<Medium> ausgeliehenListe = k.returnAusgelieheneMedien();
|
||||
for(Medium m: ausgeliehenListe) {
|
||||
if(m.getKennnummer() == kennnummer) {
|
||||
|
||||
if(m.getVerlängerungen() > 0) {
|
||||
m.setVerlängerung();
|
||||
datumVerlängern(m, k);
|
||||
|
@ -568,6 +580,161 @@ public class Bibliothek {
|
|||
}
|
||||
}
|
||||
|
||||
public static Kunde findKunde(int kennnummer) {
|
||||
for(Kunde k: kundenListe) {
|
||||
ArrayList<Medium> ausgelieheneMedienVonKunde = k.returnAusgelieheneMedien();
|
||||
for(Medium m: ausgelieheneMedienVonKunde) {
|
||||
if(m.getKennnummer() == kennnummer) {
|
||||
return k;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void rückgabe2(int kennnummer, String rückgabeDatum, Kunde k) {
|
||||
for(Medium m: katalog) {
|
||||
if(m.getKennnummer() == kennnummer) {
|
||||
String text = m.getClass().toString();
|
||||
int lastDotIndex = text.lastIndexOf(".");
|
||||
String substring = text.substring(lastDotIndex + 1);
|
||||
switch (substring) {
|
||||
case "Buch":
|
||||
Buch b = (Buch) m;
|
||||
double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum);
|
||||
String titelBuch = b.getTitel();
|
||||
if(kostenBuch > 0) {
|
||||
BibliothekGUI.zahlungsFenster2(kostenBuch, titelBuch, kennnummer, k);
|
||||
k.addSchulden(kostenBuch);
|
||||
bücherListe.add(b);
|
||||
k.removeFromList(m);
|
||||
} else if(kostenBuch == 0){
|
||||
bücherListe.add(b);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
}
|
||||
break;
|
||||
case "DVD":
|
||||
DVD d = (DVD) m;
|
||||
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
|
||||
String titelDVD = d.getTitel();
|
||||
if(kostenDVD>0) {BibliothekGUI.zahlungsFenster2(kostenDVD, titelDVD, kennnummer, k);
|
||||
k.addSchulden(kostenDVD);
|
||||
dvdListe.add(d);
|
||||
k.removeFromList(m);
|
||||
} else {
|
||||
dvdListe.add(d);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
}
|
||||
break;
|
||||
case "CD":
|
||||
CD c = (CD) m;
|
||||
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
|
||||
String titelCD = c.getTitel();
|
||||
if(kostenCD>0) {BibliothekGUI.zahlungsFenster2(kostenCD, titelCD, kennnummer, k);
|
||||
k.addSchulden(kostenCD);
|
||||
cdListe.add(c);
|
||||
k.removeFromList(m);
|
||||
} else {
|
||||
cdListe.add(c);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
}
|
||||
break;
|
||||
case "Brettspiel":
|
||||
Brettspiel bs = (Brettspiel) m;
|
||||
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
|
||||
String titelBS = bs.getTitel();
|
||||
if(kostenBS>0) {BibliothekGUI.zahlungsFenster2(kostenBS, titelBS, kennnummer, k);
|
||||
k.addSchulden(kostenBS);
|
||||
brettspielListe.add(bs);
|
||||
k.removeFromList(m);
|
||||
} else {
|
||||
brettspielListe.add(bs);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
}
|
||||
break;
|
||||
case "Videospiel":
|
||||
Videospiel vs = (Videospiel) m;
|
||||
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
|
||||
String titelVS = vs.getTitel();
|
||||
if(kostenVS>0) {BibliothekGUI.zahlungsFenster2(kostenVS, titelVS, kennnummer, k);
|
||||
k.addSchulden(kostenVS);
|
||||
videospielListe.add(vs);
|
||||
k.removeFromList(m);
|
||||
} else {
|
||||
videospielListe.add(vs);
|
||||
k.removeFromList(m);
|
||||
BibliothekGUI.noMoneyOwed();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static ArrayList<JLabel> findMatchesFiltered(String searchTerm) {
|
||||
ArrayList<JLabel> matches = new ArrayList<>();
|
||||
for(Buch b: bücherListe) {
|
||||
String titel = b.getTitel();
|
||||
String autor = b.getAutor();
|
||||
if(autor.contains(searchTerm) || titel.contains(searchTerm)) {
|
||||
JLabel j = new JLabel("Buch namens: " + titel + " von " + b.getAutor() + " mit der Kennnummer: " + b.getKennnummer());
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
for(CD c: cdListe) {
|
||||
String titel = c.getTitel();
|
||||
if(titel.contains(searchTerm)) {
|
||||
JLabel j = new JLabel("CD namens: " + titel + " mit der Kennnummer: " + c.getKennnummer());
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
for(DVD d: dvdListe) {
|
||||
String titel = d.getTitel();
|
||||
if(titel.contains(searchTerm)) {
|
||||
JLabel j = new JLabel("DVD namens: " + titel + " mit der Kennnummer: " + d.getKennnummer());
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
for(Brettspiel bp: brettspielListe) {
|
||||
String titel = bp.getTitel();
|
||||
if(titel.contains(searchTerm)) {
|
||||
JLabel j = new JLabel("Brettspiel namens: " + titel + " mit der Kennnummer: " + bp.getKennnummer());
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
for(Videospiel vs: videospielListe) {
|
||||
String titel = vs.getTitel();
|
||||
if(titel.contains(searchTerm)) {
|
||||
JLabel j = new JLabel("Videospiel namens: " + titel + " mit der Kennnnummer: " + vs.getKennnummer());
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
|
||||
public static ArrayList<JLabel> findMatchesUnfiltered(String searchTerm) {
|
||||
ArrayList<JLabel> matches = new ArrayList<>();
|
||||
for(Medium m: katalog) {
|
||||
String titel = m.getTitel();
|
||||
if(titel.contains(searchTerm)) {
|
||||
String text = m.getClass().toString();
|
||||
int lastDotIndex = text.lastIndexOf(".");
|
||||
String substring = text.substring(lastDotIndex + 1);
|
||||
int kennnummer = m.getKennnummer();
|
||||
JLabel j = new JLabel(substring + " namens: " + titel + " mit der Kennnummer: " + kennnummer);
|
||||
matches.add(j);
|
||||
}
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ package domainBib;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Kunde extends Benutzer {
|
||||
public class Kunde {
|
||||
private int kennnummer;
|
||||
private boolean istStudent;
|
||||
private double schulden;
|
||||
|
|
|
@ -13,24 +13,49 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
private static JPanel mainPanel = new JPanel(cl);
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(BibliothekGUI::new);
|
||||
new BibliothekGUI();
|
||||
}
|
||||
|
||||
public BibliothekGUI() {
|
||||
Bibliothek.makeEntries();
|
||||
|
||||
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||
String[] datumArray = {""};
|
||||
JTextField dateInput = new JTextField(20);
|
||||
JButton dateButton = new JButton("OK");
|
||||
dateGrid.add(dateEntry);
|
||||
dateGrid.add(dateInput);
|
||||
dateGrid.add(dateButton);
|
||||
JPanel loginPanel = new JPanel(new BorderLayout());
|
||||
JLabel text1 = new JLabel("Login mit Kennnummer:");
|
||||
loginPanel.add(text1, BorderLayout.NORTH);
|
||||
dateButton.addActionListener(e -> {
|
||||
if(datumArray[0] != "") {
|
||||
dateGrid.remove(dateGrid.getComponentCount() -1);
|
||||
String newDate1 = dateInput.getText().toString();
|
||||
datumArray[0] = newDate1;
|
||||
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState1);
|
||||
dateGrid.revalidate();
|
||||
} else {
|
||||
String newDate = dateInput.getText().toString();
|
||||
datumArray[0] = newDate;
|
||||
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState);
|
||||
dateGrid.revalidate();
|
||||
}
|
||||
});
|
||||
loginPanel.add(dateGrid, BorderLayout.NORTH);
|
||||
|
||||
JLabel text1 = new JLabel("Login mit Kennnummer: ");
|
||||
JPanel loginGrid = new JPanel(new BorderLayout());
|
||||
loginGrid.add(text1, BorderLayout.NORTH);
|
||||
JTextField field1 = new JTextField(20);
|
||||
loginGrid.add(field1);
|
||||
loginPanel.add(loginGrid, BorderLayout.CENTER);
|
||||
JButton b0 = new JButton("Registrieren");
|
||||
b0.addActionListener(e -> { nutzerAnlegen();});
|
||||
JButton b3 = new JButton("Ohne Anmeldung fortfahren");
|
||||
b3.addActionListener(e -> {
|
||||
browseMedia();
|
||||
});
|
||||
b3.addActionListener(e -> {browseMedia(datumArray[0]);});
|
||||
JPanel buttonGrid = new JPanel(new GridLayout(1,2,10,10));
|
||||
buttonGrid.add(b0);
|
||||
buttonGrid.add(b3);
|
||||
|
@ -47,7 +72,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
String text = k.getClass().toString();
|
||||
int lastDotIndex = text.lastIndexOf(".");
|
||||
String substring = text.substring(lastDotIndex + 1);
|
||||
if(substring.equals("Kunde")) {openMainMenu(k);}
|
||||
if(substring.equals("Kunde")) {openMainMenu(k, datumArray[0]);}
|
||||
}});
|
||||
bp.add(b1);
|
||||
bp.add(b2);
|
||||
|
@ -60,8 +85,53 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
cl.show(mainPanel, "loginPanel");
|
||||
}
|
||||
|
||||
private void browseMedia() {
|
||||
JPanel browsePanel = new JPanel(new GridLayout(6, 1, 10, 10));
|
||||
private static void openMainMenu(Kunde k, String datum) {
|
||||
JPanel mediumPanel = new JPanel(new GridLayout(7, 1, 10, 10));
|
||||
|
||||
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||
String[] datumArray = {datum};
|
||||
JTextField dateInput = new JTextField(20);
|
||||
JButton dateButton = new JButton("OK");
|
||||
dateGrid.add(dateEntry);
|
||||
dateGrid.add(dateInput);
|
||||
dateGrid.add(dateButton);
|
||||
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState1);
|
||||
dateButton.addActionListener(e -> {
|
||||
String newDate = dateInput.getText().toString();
|
||||
datumArray[0] = newDate;
|
||||
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.remove(dateState1);
|
||||
dateGrid.add(dateState);
|
||||
dateGrid.revalidate();
|
||||
});
|
||||
mediumPanel.add(dateGrid, BorderLayout.NORTH);
|
||||
|
||||
JButton b0 = new JButton("Medien durchsuchen");
|
||||
b0.addActionListener(e -> { medienDurchsuchenMenu(k);});
|
||||
JButton b1 = new JButton("Ausleihe");
|
||||
b1.addActionListener(e -> ausleihenMenü(k, datumArray[0]));
|
||||
JButton b2 = new JButton("Rückgabe");
|
||||
b2.addActionListener(e -> rückgabeMenü(k, datumArray[0]));
|
||||
JButton b3 = new JButton("Meine Ausgeliehenen Medien");
|
||||
b3.addActionListener(e -> myBooks(k));
|
||||
JButton b4 = new JButton("Verlängern");
|
||||
b4.addActionListener(e -> verlängern(k, datumArray[0]));
|
||||
JButton b5= new JButton("Ausloggen");
|
||||
b5.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||
mediumPanel.add(b0);
|
||||
mediumPanel.add(b1);
|
||||
mediumPanel.add(b2);
|
||||
mediumPanel.add(b3);
|
||||
mediumPanel.add(b4);
|
||||
mediumPanel.add(b5);
|
||||
mainPanel.add(mediumPanel, "mediumPanel");
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
}
|
||||
|
||||
private void browseMedia(String datum) {
|
||||
JPanel browsePanel = new JPanel(new GridLayout(7, 1, 10, 10));
|
||||
JButton b1 = new JButton("Bücher");
|
||||
Kunde k = null;
|
||||
b1.addActionListener(e -> bookMenu(k));
|
||||
|
@ -73,18 +143,67 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
b4.addActionListener(e -> bsMenu(k));
|
||||
JButton b5 = new JButton("Videospiele");
|
||||
b5.addActionListener(e -> vsMenu(k));
|
||||
JButton b6 = new JButton("OK");
|
||||
b6.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||
JButton b6 = new JButton("Rückgabe");
|
||||
b6.addActionListener(e -> { rückgabeOhneUserID(datum);});
|
||||
JButton b7 = new JButton("Zurück");
|
||||
b7.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||
browsePanel.add(b1);
|
||||
browsePanel.add(b2);
|
||||
browsePanel.add(b3);
|
||||
browsePanel.add(b4);
|
||||
browsePanel.add(b5);
|
||||
browsePanel.add(b6);
|
||||
browsePanel.add(b7);
|
||||
mainPanel.add(browsePanel, "browsePanel");
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
}
|
||||
|
||||
private void rückgabeOhneUserID(String datum) {
|
||||
JPanel rückgabeOhneIdMenü = new JPanel(new BorderLayout());
|
||||
//NORTH
|
||||
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||
String[] datumArray = {datum};
|
||||
JTextField dateInput = new JTextField(20);
|
||||
JButton dateButton = new JButton("OK");
|
||||
dateGrid.add(dateEntry);
|
||||
dateGrid.add(dateInput);
|
||||
dateGrid.add(dateButton);
|
||||
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState1);
|
||||
dateButton.addActionListener(e -> {
|
||||
String newDate = dateInput.getText().toString();
|
||||
datumArray[0] = newDate;
|
||||
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.remove(dateState1);
|
||||
dateGrid.add(dateState);
|
||||
dateGrid.revalidate();
|
||||
});
|
||||
rückgabeOhneIdMenü.add(dateGrid, BorderLayout.NORTH);
|
||||
//CENTER
|
||||
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||
JTextField inputField1 = new JTextField(20);
|
||||
inputMenu.add(text1);
|
||||
inputMenu.add(inputField1);
|
||||
rückgabeOhneIdMenü.add(inputMenu, BorderLayout.CENTER);
|
||||
//SOUTH
|
||||
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||
JButton b1 = new JButton("Abbrechen");
|
||||
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||
JButton b2 = new JButton("OK");
|
||||
buttonGrid.add(b1);
|
||||
buttonGrid.add(b2);
|
||||
rückgabeOhneIdMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||
b2.addActionListener(e -> {
|
||||
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||
Kunde k = Bibliothek.findKunde(kennnummer);
|
||||
Bibliothek.rückgabe2(kennnummer, datumArray[0], k);
|
||||
});
|
||||
mainPanel.add(rückgabeOhneIdMenü, "Rückgabe1");
|
||||
cl.show(mainPanel, "Rückgabe1");
|
||||
}
|
||||
|
||||
private void nutzerAnlegen() {
|
||||
JPanel registerMenu = new JPanel(new BorderLayout());
|
||||
int newKennnummer = Bibliothek.getNewKennnummer();
|
||||
|
@ -195,10 +314,10 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
cl.show(mainPanel, "changeOwed");
|
||||
}
|
||||
|
||||
private static void openMainMenu(Kunde k) {
|
||||
JPanel mediumPanel = new JPanel(new GridLayout(12, 1, 10, 10));
|
||||
JLabel text1 = new JLabel("Ihre Kennnnummer: " + k.getKennnummer());
|
||||
mediumPanel.add(text1);
|
||||
private static void medienDurchsuchenMenu(Kunde k) {
|
||||
JPanel suchenPanel = new JPanel(new GridLayout(7,1,10,10));
|
||||
JButton b0 = new JButton("Stichwortsuche");
|
||||
b0.addActionListener(e -> searchMenu(k));
|
||||
JButton b1 = new JButton("Bücher");
|
||||
b1.addActionListener(e -> bookMenu(k));
|
||||
JButton b2 = new JButton("DVDs");
|
||||
|
@ -209,34 +328,93 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
b4.addActionListener(e -> bsMenu(k));
|
||||
JButton b5 = new JButton("Videospiele");
|
||||
b5.addActionListener(e -> vsMenu(k));
|
||||
JButton b6 = new JButton("Ausleihe");
|
||||
b6.addActionListener(e -> ausleihenMenü(k));
|
||||
JButton b7 = new JButton("Rückgabe");
|
||||
b7.addActionListener(e -> rückgabeMenü(k));
|
||||
JButton b8 = new JButton("Meine Ausgeliehenen Medien");
|
||||
b8.addActionListener(e -> myBooks(k));
|
||||
JButton b9 = new JButton("Verlängern");
|
||||
b9.addActionListener(e -> verlängern(k));
|
||||
JButton b10 = new JButton("Meine Schulden abbezahlen");
|
||||
b10.addActionListener(e -> schuldenBegleichen(k));
|
||||
JButton b11 = new JButton("Ausloggen");
|
||||
b11.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
|
||||
mediumPanel.add(b1);
|
||||
mediumPanel.add(b2);
|
||||
mediumPanel.add(b3);
|
||||
mediumPanel.add(b4);
|
||||
mediumPanel.add(b5);
|
||||
mediumPanel.add(b6);
|
||||
mediumPanel.add(b7);
|
||||
mediumPanel.add(b8);
|
||||
mediumPanel.add(b9);
|
||||
mediumPanel.add(b10);
|
||||
mediumPanel.add(b11);
|
||||
mainPanel.add(mediumPanel, "mediumPanel");
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
JButton b6 = new JButton("Zurück");
|
||||
b6.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||
suchenPanel.add(b0);
|
||||
suchenPanel.add(b1);
|
||||
suchenPanel.add(b2);
|
||||
suchenPanel.add(b3);
|
||||
suchenPanel.add(b4);
|
||||
suchenPanel.add(b5);
|
||||
suchenPanel.add(b6);
|
||||
mainPanel.add(suchenPanel, "suchenMenu");
|
||||
cl.show(mainPanel, "suchenMenu");
|
||||
}
|
||||
|
||||
private static void verlängern(Kunde k) {
|
||||
private static void searchMenu(Kunde k) {
|
||||
JPanel mainSearch = new JPanel(new BorderLayout());
|
||||
//NORTH: Search bar
|
||||
JPanel enterSearch = new JPanel(new GridLayout(1,3,10,10));
|
||||
JLabel text0 = new JLabel("Geben Sie einen Suchbegriff ein:");
|
||||
JTextField enterSearchTerm = new JTextField(20);
|
||||
//Hilfe von ChatGPT, da ich nicht wusste wie ich eine Checkbox hinzufüge und abhöre, ob
|
||||
//sie gedrückt ist oder nicht box0.isSelected();)
|
||||
JCheckBox box0 = new JCheckBox("Nur ausleihbare Medien anzeigen");
|
||||
enterSearch.add(text0);
|
||||
enterSearch.add(enterSearchTerm);
|
||||
enterSearch.add(box0);
|
||||
mainSearch.add(enterSearch, BorderLayout.NORTH);
|
||||
//CENTER: Matched media
|
||||
mainSearch.revalidate();
|
||||
int[] doThis = {0};
|
||||
box0.addActionListener(e -> {
|
||||
if(box0.isSelected() == true) {
|
||||
String searchTerm = enterSearchTerm.getText().toString();
|
||||
ArrayList<JLabel> matchedMedia = Bibliothek.findMatchesFiltered(searchTerm);
|
||||
int i = matchedMedia.size();
|
||||
if(i == 0) {
|
||||
JLabel text1 = new JLabel("Nichts passendes zu dem Suchbegriff " + searchTerm + " gefunden.");
|
||||
mainSearch.revalidate();
|
||||
mainSearch.add(text1, BorderLayout.CENTER);
|
||||
mainSearch.revalidate();
|
||||
System.out.println("UNFIL");
|
||||
} else if (i > 0){
|
||||
JPanel ergebnisPanel = new JPanel(new GridLayout(i, 1, 10,10));
|
||||
for(JLabel j: matchedMedia) {
|
||||
ergebnisPanel.add(j);
|
||||
}
|
||||
mainSearch.revalidate();
|
||||
mainSearch.add(ergebnisPanel, BorderLayout.CENTER);
|
||||
mainSearch.revalidate();
|
||||
}
|
||||
mainSearch.revalidate();
|
||||
doThis[0] = 0;
|
||||
}
|
||||
else if(box0.isSelected() == false){
|
||||
String searchTerm = enterSearchTerm.getText().toString();
|
||||
ArrayList<JLabel> matchedMedia = Bibliothek.findMatchesUnfiltered(searchTerm);
|
||||
int i = matchedMedia.size();
|
||||
if(i == 0) {
|
||||
JLabel text1 = new JLabel("Nichts passendes zu dem Suchbegriff " + searchTerm + " gefunden.");
|
||||
mainSearch.revalidate();
|
||||
mainSearch.add(text1, BorderLayout.CENTER);
|
||||
mainSearch.revalidate();
|
||||
System.out.println("FIL");
|
||||
} else if (i > 0){
|
||||
JPanel ergebnisPanel = new JPanel(new GridLayout(i, 1, 10,10));
|
||||
for(JLabel j: matchedMedia) {
|
||||
ergebnisPanel.add(j);
|
||||
}
|
||||
mainSearch.revalidate();
|
||||
mainSearch.add(ergebnisPanel, BorderLayout.CENTER);
|
||||
mainSearch.revalidate();
|
||||
}
|
||||
mainSearch.revalidate();
|
||||
doThis[0] = 0;
|
||||
}
|
||||
});
|
||||
mainSearch.revalidate();
|
||||
//SOUTH: OK Button to return
|
||||
JButton b1 = new JButton("OK");
|
||||
b1.addActionListener(e -> cl.show(mainPanel, "suchenMenu"));
|
||||
mainSearch.add(b1, BorderLayout.SOUTH);
|
||||
|
||||
mainPanel.add(mainSearch, "Stichwort");
|
||||
cl.show(mainPanel, "Stichwort");
|
||||
}
|
||||
|
||||
private static void verlängern(Kunde k, String datumArray) {
|
||||
|
||||
JPanel verlängerungPanel = new JPanel(new BorderLayout());
|
||||
JLabel text0 = new JLabel("Geben Sie die Kennnumer des Mediums ein, dessen Rückgabezeit sie verlängern möchten.");
|
||||
JTextField inputField = new JTextField(20);
|
||||
|
@ -313,95 +491,95 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
cl.show(mainPanel, "Verlängerung2");
|
||||
}
|
||||
|
||||
private static void schuldenBegleichen(Kunde k) {
|
||||
JPanel schuldenMenü = new JPanel(new BorderLayout());
|
||||
double schulden = k.getSchulden();
|
||||
if(schulden > 0) {
|
||||
JLabel text0 = new JLabel("Sie haben " + schulden + "€ Schulden. Geben Sie unten ein, wie viel Sie zahlen möchten.");
|
||||
JTextField inputField1 = new JTextField(20);
|
||||
JButton b1 = new JButton("OK");
|
||||
schuldenMenü.add(text0, BorderLayout.NORTH);
|
||||
schuldenMenü.add(inputField1, BorderLayout.CENTER);
|
||||
JPanel buttonGrid = new JPanel(new GridLayout(1,2,10,10));
|
||||
JButton b2 = new JButton("Abbrechen");
|
||||
b2.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||
buttonGrid.add(b2);
|
||||
buttonGrid.add(b1);
|
||||
schuldenMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||
b1.addActionListener(e -> {
|
||||
int einzahlung = Integer.parseInt(inputField1.getText());
|
||||
double newSchulden = schulden - einzahlung;
|
||||
k.setSchulden(newSchulden);
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
});
|
||||
} else if(schulden <= 0){
|
||||
JLabel text0 = new JLabel("Sie haben keine Schulden.");
|
||||
JLabel text1 = new JLabel("Ihr Guthaben beträgt " + schulden*(-1) + "€.");
|
||||
JButton b1 = new JButton("OK");
|
||||
schuldenMenü.add(text0, BorderLayout.NORTH);
|
||||
schuldenMenü.add(text1, BorderLayout.CENTER);
|
||||
schuldenMenü.add(b1, BorderLayout.SOUTH);
|
||||
b1.addActionListener(e -> {
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
});
|
||||
}
|
||||
mainPanel.add(schuldenMenü, "Schulden");
|
||||
cl.show(mainPanel, "Schulden");
|
||||
}
|
||||
|
||||
private static void ausleihenMenü(Kunde k) {
|
||||
|
||||
private static void ausleihenMenü(Kunde k, String datum) {
|
||||
JPanel ausleihMenü = new JPanel(new BorderLayout());
|
||||
JPanel inputMenu = new JPanel(new GridLayout(4, 1, 10, 10));
|
||||
//NORTH
|
||||
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||
String[] datumArray = {datum};
|
||||
JTextField dateInput = new JTextField(20);
|
||||
JButton dateButton = new JButton("OK");
|
||||
dateGrid.add(dateEntry);
|
||||
dateGrid.add(dateInput);
|
||||
dateGrid.add(dateButton);
|
||||
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState1);
|
||||
dateButton.addActionListener(e -> {
|
||||
String newDate = dateInput.getText().toString();
|
||||
datumArray[0] = newDate;
|
||||
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.remove(dateState1);
|
||||
dateGrid.add(dateState);
|
||||
dateGrid.revalidate();
|
||||
});
|
||||
ausleihMenü.add(dateGrid, BorderLayout.NORTH);
|
||||
//CENTER
|
||||
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||
JTextField inputField1 = new JTextField(20);
|
||||
JLabel text2 = new JLabel("Datum eingeben:");
|
||||
JTextField inputField2 = new JTextField(20);
|
||||
inputMenu.add(text1);
|
||||
inputMenu.add(inputField1);
|
||||
inputMenu.add(text2);
|
||||
inputMenu.add(inputField2);
|
||||
ausleihMenü.add(inputMenu, BorderLayout.CENTER);
|
||||
//SOUTH
|
||||
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||
JButton b1 = new JButton("Abbrechen");
|
||||
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||
JButton b2 = new JButton("OK");
|
||||
b2.addActionListener(e -> {
|
||||
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||
String ausleihDatum = inputField2.getText().toString();
|
||||
Bibliothek.ausleihe(kennnummer, ausleihDatum, k);
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
});
|
||||
buttonGrid.add(b1);
|
||||
buttonGrid.add(b2);
|
||||
ausleihMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||
b2.addActionListener(e -> {
|
||||
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||
Bibliothek.ausleihe(kennnummer, datumArray[0], k);
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
});
|
||||
mainPanel.add(ausleihMenü, "Ausleihen");
|
||||
cl.show(mainPanel, "Ausleihen");
|
||||
}
|
||||
|
||||
private static void rückgabeMenü(Kunde k) {
|
||||
private static void rückgabeMenü(Kunde k, String datum) {
|
||||
JPanel rückgabeMenü = new JPanel(new BorderLayout());
|
||||
JPanel inputMenu = new JPanel(new GridLayout(4,1,10,10));
|
||||
JLabel text1 = new JLabel("Kennnummer des Mediums zur Rückgabe eingeben:");
|
||||
//NORTH
|
||||
JPanel dateGrid = new JPanel(new GridLayout(1,4,10,10));
|
||||
JLabel dateEntry = new JLabel("Datum eingeben: ");
|
||||
String[] datumArray = {datum};
|
||||
JTextField dateInput = new JTextField(20);
|
||||
JButton dateButton = new JButton("OK");
|
||||
dateGrid.add(dateEntry);
|
||||
dateGrid.add(dateInput);
|
||||
dateGrid.add(dateButton);
|
||||
JLabel dateState1 = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.add(dateState1);
|
||||
dateButton.addActionListener(e -> {
|
||||
String newDate = dateInput.getText().toString();
|
||||
datumArray[0] = newDate;
|
||||
JLabel dateState = new JLabel("Datum: " + datumArray[0]);
|
||||
dateGrid.remove(dateState1);
|
||||
dateGrid.add(dateState);
|
||||
dateGrid.revalidate();
|
||||
});
|
||||
rückgabeMenü.add(dateGrid, BorderLayout.NORTH);
|
||||
//CENTER
|
||||
JPanel inputMenu = new JPanel(new GridLayout(2, 1, 10, 10));
|
||||
JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:");
|
||||
JTextField inputField1 = new JTextField(20);
|
||||
JLabel text2 = new JLabel("Datum eingeben:");
|
||||
JTextField inputField2 = new JTextField(20);
|
||||
inputMenu.add(text1);
|
||||
inputMenu.add(inputField1);
|
||||
inputMenu.add(text2);
|
||||
inputMenu.add(inputField2);
|
||||
rückgabeMenü.add(inputMenu, BorderLayout.CENTER);;
|
||||
rückgabeMenü.add(inputMenu, BorderLayout.CENTER);
|
||||
//SOUTH
|
||||
JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10));
|
||||
JButton b1 = new JButton("Abbrechen");
|
||||
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
|
||||
JButton b2 = new JButton("OK");
|
||||
b2.addActionListener(e -> {
|
||||
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||
String rückgabeDatum = inputField2.getText().toString();
|
||||
Bibliothek.rückgabe(kennnummer, rückgabeDatum, k);
|
||||
});
|
||||
buttonGrid.add(b1);
|
||||
buttonGrid.add(b2);
|
||||
rückgabeMenü.add(buttonGrid, BorderLayout.SOUTH);
|
||||
b2.addActionListener(e -> {
|
||||
int kennnummer = Integer.parseInt(inputField1.getText());
|
||||
Bibliothek.rückgabe(kennnummer, datumArray[0], k);
|
||||
});
|
||||
mainPanel.add(rückgabeMenü, "Rückgabe");
|
||||
cl.show(mainPanel, "Rückgabe");
|
||||
}
|
||||
|
@ -420,7 +598,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
if(k == null) {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
} else {
|
||||
cl.show(mainPanel, "mediumPanel");}
|
||||
cl.show(mainPanel, "suchenMenu");}
|
||||
});
|
||||
buchMenü.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(buchMenü, "Bücher");
|
||||
|
@ -441,7 +619,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
if(k == null) {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
} else {
|
||||
cl.show(mainPanel, "mediumPanel");}
|
||||
cl.show(mainPanel, "suchenMenu");}
|
||||
});
|
||||
dvdMenü.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(dvdMenü, "DVDs");
|
||||
|
@ -462,7 +640,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
if(k == null) {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
} else {
|
||||
cl.show(mainPanel, "mediumPanel");}
|
||||
cl.show(mainPanel, "suchenMenu");}
|
||||
}); cdMenü.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(cdMenü, "CDs");
|
||||
cl.show(mainPanel, "CDs");
|
||||
|
@ -482,7 +660,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
if(k == null) {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
} else {
|
||||
cl.show(mainPanel, "mediumPanel");}
|
||||
cl.show(mainPanel, "suchenMenu");}
|
||||
}); bsMenü.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(bsMenü, "Brettspiele");
|
||||
cl.show(mainPanel, "Brettspiele");
|
||||
|
@ -502,7 +680,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
if(k == null) {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
} else {
|
||||
cl.show(mainPanel, "mediumPanel");}
|
||||
cl.show(mainPanel, "suchenMenu");}
|
||||
}); vsMenü.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(vsMenü, "Videospiele");
|
||||
cl.show(mainPanel, "Videospiele");
|
||||
|
@ -532,52 +710,37 @@ public class BibliothekGUI extends JFrame implements ActionListener{
|
|||
|
||||
public static void zahlungsFenster(double kosten, String titel, int kennnummer, Kunde k) {
|
||||
JPanel zahlungPanel = new JPanel(new BorderLayout());
|
||||
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€.");
|
||||
zahlungPanel.add(text1, BorderLayout.NORTH);
|
||||
JPanel zahlungPanelMitte = new JPanel(new GridLayout(2,1,10,10));
|
||||
JLabel text3 = new JLabel("Geben Sie ein wieviel sie zahlen:");
|
||||
zahlungPanelMitte.add(text3);
|
||||
JTextField inputField1 = new JTextField(20);
|
||||
zahlungPanelMitte.add(inputField1);
|
||||
zahlungPanel.add(zahlungPanelMitte, BorderLayout.CENTER);
|
||||
//CENTER
|
||||
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€. Bitte zahlen Sie die Gebühren an der Kasse.");
|
||||
zahlungPanel.add(text1, BorderLayout.CENTER);
|
||||
//SOUTH
|
||||
JButton b1 = new JButton("OK");
|
||||
zahlungPanel.add(b1, BorderLayout.SOUTH);
|
||||
mainPanel.add(zahlungPanel,"Zahlung1");
|
||||
cl.show(mainPanel, "Zahlung1");
|
||||
b1.addActionListener(e -> {
|
||||
String paymentString = inputField1.getText().toString();
|
||||
zahlungStatus(paymentString, kosten, k);
|
||||
});
|
||||
}
|
||||
|
||||
private static void zahlungStatus(String zahlungStr, double kosten, Kunde k) {
|
||||
int zahlung = Integer.parseInt(zahlungStr);
|
||||
boolean zahlungErfolgreich = Bibliothek.zahlungRegistrieren(zahlung, kosten);
|
||||
JPanel zahlungStatusPanel = new JPanel(new BorderLayout());
|
||||
JLabel text2 = new JLabel("Zahlungsstatus:");
|
||||
zahlungStatusPanel.add(text2, BorderLayout.NORTH);
|
||||
JButton b2 = new JButton("OK");
|
||||
zahlungStatusPanel.add(b2, BorderLayout.SOUTH);
|
||||
if(zahlungErfolgreich == true) {
|
||||
JLabel text4 = new JLabel("Zahlung war erfolgreich!");
|
||||
zahlungStatusPanel.add(text4, BorderLayout.CENTER);
|
||||
k.setSchulden(kosten - zahlung);
|
||||
} else {
|
||||
k.setSchulden(kosten - zahlung);
|
||||
double schulden = k.getSchulden();
|
||||
JLabel text4 = new JLabel("Zahlung fehlgeschlagen! Ihnen wurden " + schulden + "€ Schulden zugeschrieben.");
|
||||
zahlungStatusPanel.add(text4, BorderLayout.CENTER);
|
||||
}
|
||||
mainPanel.add(zahlungStatusPanel, "Zahlung2");
|
||||
cl.show(mainPanel, "Zahlung2");
|
||||
b2.addActionListener(e -> {
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
myBooks(k);
|
||||
});
|
||||
mainPanel.add(zahlungPanel,"Zahlung");
|
||||
cl.show(mainPanel, "Zahlung");
|
||||
}
|
||||
|
||||
public static void noMoneyOwed() {
|
||||
cl.show(mainPanel, "mediumPanel");
|
||||
}
|
||||
|
||||
public static void zahlungsFenster2(double kosten, String titel, int kennnummer, Kunde k) {
|
||||
JPanel zahlungPanel = new JPanel(new BorderLayout());
|
||||
//CENTER
|
||||
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€. Bitte zahlen Sie die Gebühren an der Kasse.");
|
||||
zahlungPanel.add(text1, BorderLayout.CENTER);
|
||||
//SOUTH
|
||||
JButton b1 = new JButton("OK");
|
||||
zahlungPanel.add(b1, BorderLayout.SOUTH);
|
||||
b1.addActionListener(e -> {
|
||||
cl.show(mainPanel, "browsePanel");
|
||||
});
|
||||
mainPanel.add(zahlungPanel,"Zahlung2");
|
||||
cl.show(mainPanel, "Zahlung2");
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 46975a289a6313a2d2a9346ca60a34a1f97e92df
|
|
@ -0,0 +1,50 @@
|
|||
Antworten:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
°°°°Preisermäßigung für Studenten bei Preisen:
|
||||
Schüler 50% Rabatt bei Jahresrabatt, nicht bei Überzug der Ausleihdauer
|
||||
|
||||
°°°°Zahlungsvalidierung: zahlPanel nach Rückgabe wegmachen, schulden werden aufaddiert, admin loggt sich ein um zu clearen
|
||||
Außerdem: "Meine Schulden abbezahlen" wegmachen
|
||||
|
||||
°°°°Bei Rückgabe: keine Anmeldung notwendig, sondern nur ID des Mediums eingeben.
|
||||
|
||||
°°°°Bei Verlängerung: Nur als angemeldeter Nutzer
|
||||
|
||||
°°°°Kann es ein Buch mehrmals geben?
|
||||
Ja, jedes mal aber eine eigene ID mit eigener Buch-Instanz
|
||||
|
||||
°°°°Bei Rückgabe ohne Anmeldung:
|
||||
Zugriff auf meine ausgeliehenen Medien nach der Rückgabe soll nicht möglich sein
|
||||
(Als Übung trotzdem hinzufügen, neue myBooks methode schreiben, die ohne Anmeldung funktioniert)
|
||||
|
||||
°°°°Bei Ausleihen: Zur Liste von ALLEN ausgeliehen Medien (von Allen Kunden) hinzufpgen, soll für Admin ersichtlich sein. Auch: Nutzer-ID sehen.
|
||||
--> Neue Ausleihe Klasse mit Parameter Medium-ID, Kunde-ID, Datum, Verlängerungen
|
||||
--> Neue Ausleihe zum Zeitpunkt der Ausleihe erstellen mit Medium-ID, Kunde-ID, Datum, Verlängerungen
|
||||
--> Bei Verlängerungen auch in der Ausleihe Klasse verändern
|
||||
--> ODER: Zu jedem Medium eine neue Variable USER-ID, sodass das Buch weiss bei wem es ist
|
||||
--> Maybe boolean(istAusgeliehen) für alle Medien
|
||||
|
||||
°°°°(Bücher, CD, DVD, Brettspiel, Videospiel) Panel für Nutzer:
|
||||
Auch ausgeliehene Instanzen anzeigen, zeigen bis wann es ausgeliehen ist (mit Verlänerungen)
|
||||
|
||||
°°°°Uhrzeit als Systemuhrzeit umsetzen:
|
||||
"Um die Jahresgebühren und Ausleihfristen zu simulieren, soll es über das UI möglich sein, das Datum,
|
||||
mit dem das System arbeiten soll, zu ändern."
|
||||
-->Nicht
|
||||
|
||||
°°°°Verlängerung nach Rückgabedatum:
|
||||
--> Nicht möglich!
|
||||
|
||||
°°°°Neue Bücher über UI:
|
||||
--> Nicht notwendig!
|
||||
|
||||
°°°°Stichwortsuche:
|
||||
Nutzer gibt "des Lebens ein"
|
||||
Ausgabe: "XYZ des Lebens, Buch, Kennnummer abc1"
|
||||
"Spiel des Lebens, Brettspiiel, Kennnummer abc2"
|
||||
...
|
||||
|
||||
°°°°Filter in der Medienliste:
|
||||
Alles war da ist, alles was ausgeliehen ist bis[Datum], nach Medienart filtern etc.
|
||||
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
prompt:
|
||||
habe einen error in eclipse, nämlioch git rejected - non fast forward
|
||||
|
||||
antwort:
|
||||
Der Fehler "Git rejected - non-fast-forward" bedeutet, dass dein lokales Repository versucht, Änderungen zu pushen, die mit dem aktuellen Stand des Remote-Branches nicht kompatibel sind. Dies passiert häufig, wenn der Remote-Branch Änderungen enthält, die du lokal nicht hast. Git erlaubt standardmäßig keine "non-fast-forward"-Pushes, um zu verhindern, dass Änderungen überschrieben werden.
|
||||
|
||||
Schritte zur Behebung
|
||||
Pull die neuesten Änderungen aus dem Remote-Branch:
|
||||
|
||||
php
|
||||
Code kopieren
|
||||
git pull origin <branch-name>
|
||||
Dies zieht die neuesten Änderungen vom Remote-Repository in dein lokales Repository.
|
||||
|
||||
Behebe mögliche Merge-Konflikte: Falls es Konflikte gibt, zeigt Git an, welche Dateien betroffen sind. Bearbeite diese Dateien, löse die Konflikte, und führe dann einen Commit aus:
|
||||
|
||||
sql
|
||||
Code kopieren
|
||||
git add <konflikt-dateien>
|
||||
git commit -m "Konflikte gelöst"
|
||||
Push die Änderungen erneut: Nachdem du den lokalen Branch mit dem Remote-Branch synchronisiert hast, kannst du erneut pushen:
|
||||
|
||||
perl
|
||||
Code kopieren
|
||||
git push origin <branch-name>
|
||||
Alternativen und zusätzliche Optionen
|
||||
Force Push (nur verwenden, wenn du sicher bist, dass du den Remote-Branch überschreiben möchtest):
|
||||
|
||||
css
|
||||
Code kopieren
|
||||
git push --force origin <branch-name>
|
||||
⚠️ Achtung: Ein Force Push kann Änderungen anderer Entwickler überschreiben und sollte mit Vorsicht verwendet werden.
|
||||
|
||||
Rebase verwenden (für eine sauberere Historie): Wenn du deine Änderungen vor die aktuellen Remote-Änderungen setzen möchtest:
|
||||
|
||||
php
|
||||
Code kopieren
|
||||
git fetch origin
|
||||
git rebase origin/<branch-name>
|
||||
Danach kannst du die Änderungen pushen:
|
||||
|
||||
perl
|
||||
Code kopieren
|
||||
git push origin <branch-name>
|
||||
In Eclipse:
|
||||
Falls du Git über Eclipse nutzt, kannst du folgendes tun:
|
||||
|
||||
Pull durchführen:
|
||||
|
||||
Klicke mit der rechten Maustaste auf dein Projekt.
|
||||
Wähle Team > Pull.
|
||||
Konflikte lösen:
|
||||
|
||||
Falls Konflikte auftreten, werden diese in der "Git Staging"-Ansicht angezeigt. Bearbeite die Konflikte und committe die Änderungen.
|
||||
Push erneut versuchen:
|
||||
|
||||
Gehe zu Team > Push to Upstream.
|
||||
Falls es immer noch Probleme gibt, überprüfe, ob du die korrekten Branches verwendest.
|
|
@ -0,0 +1,20 @@
|
|||
prompt:
|
||||
wie kann ich in localdate in java 28 tage hinzufügen
|
||||
|
||||
antwort:
|
||||
In Java kannst du zur LocalDate-Klasse 28 Tage hinzufügen, indem du die Methode .plusDays(28) verwendest. Hier ist ein Beispiel:
|
||||
|
||||
java
|
||||
Code kopieren
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
LocalDate heutigesDatum = LocalDate.now();
|
||||
LocalDate neuesDatum = heutigesDatum.plusDays(28);
|
||||
|
||||
System.out.println("Heutiges Datum: " + heutigesDatum);
|
||||
System.out.println("Datum in 28 Tagen: " + neuesDatum);
|
||||
}
|
||||
}
|
||||
In diesem Beispiel wird das heutige Datum um 28 Tage verschoben, und das Ergebnis wird in neuesDatum gespeichert.
|
|
@ -0,0 +1,14 @@
|
|||
prompt:
|
||||
how to get the last part of the string fjwaifa.fwwafaw.buch
|
||||
|
||||
antwort:
|
||||
To get the last part of the string "fjwaifa.fwwafaw.buch" in many programming languages, you can split the string by the dot (".") and access the last element.
|
||||
|
||||
java
|
||||
Code kopieren
|
||||
String string = "fjwaifa.fwwafaw.buch";
|
||||
String[] parts = string.split("\\.");
|
||||
String lastPart = parts[parts.length - 1];
|
||||
System.out.println(lastPart); // Output: buch
|
||||
|
||||
The code splits the string into parts at each "." and retrieves the last element, which is "buch".
|
|
@ -0,0 +1,45 @@
|
|||
prompt:
|
||||
how can i add a checkbox to java swing
|
||||
|
||||
antwort:
|
||||
In Java Swing, you can add a checkbox using the JCheckBox class. Here’s a basic example:
|
||||
|
||||
java
|
||||
Code kopieren
|
||||
import javax.swing.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
public class CheckboxExample {
|
||||
public static void main(String[] args) {
|
||||
JFrame frame = new JFrame("Checkbox Example");
|
||||
frame.setSize(300, 200);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
|
||||
// Create a checkbox
|
||||
JCheckBox checkbox = new JCheckBox("Accept Terms and Conditions");
|
||||
checkbox.setBounds(50, 50, 200, 30);
|
||||
|
||||
// Add an action listener to respond to checkbox state changes
|
||||
checkbox.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (checkbox.isSelected()) {
|
||||
System.out.println("Checkbox selected");
|
||||
} else {
|
||||
System.out.println("Checkbox deselected");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Add checkbox to the frame
|
||||
frame.add(checkbox);
|
||||
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
Explanation:
|
||||
JCheckBox Creation: JCheckBox checkbox = new JCheckBox("Label") creates a checkbox with a label.
|
||||
Positioning: checkbox.setBounds(x, y, width, height) positions the checkbox in the frame.
|
||||
Action Listener: To respond to state changes, we add an ActionListener which checks if the checkbox is selected using checkbox.isSelected().
|
||||
Add to Frame: The checkbox is added to the frame using frame.add(checkbox).
|
||||
This code opens a simple window with a checkbox, and selecting or deselecting it prints a message to the console.
|
|
@ -0,0 +1,18 @@
|
|||
-Trennung in domain und gui Package
|
||||
-abstrakte Methode Medium anlegen
|
||||
-Unterklassen Buch, CD etc. anlegen die von Medium erben
|
||||
-Kunde-Klasse anlegen
|
||||
-ArrayLists für Medien und Nutzer anlegen
|
||||
-Nutzer im Code anlegen
|
||||
-login Panel in GUI anlegen
|
||||
-Methode für den login in main Klasse schreiben
|
||||
-Feature einbauen, das alle Medien auflistet
|
||||
-Feature einbauen, das Ausleihe und Rückgabe ermöglicht
|
||||
-Feature zum Sehen der ausgeliehenen Medien hinzufügen
|
||||
-Ausleihe und Rückgabe um Datumseingabe erweitern, Gebühren berechnen feature hinzufügen
|
||||
-Admin fenster hinzufügen
|
||||
-Registrierung neuer Nutzer als Feature hinzufügen
|
||||
-Verlängerung von Medien ermöglichen
|
||||
-Liste aller Nutzer als Admin feature hinzufügen
|
||||
-Gebühren von Nutzern überschreiben als Admin feature hinzufügen
|
||||
-JUnit Tests schreiben
|
Loading…
Reference in New Issue