Compare commits

..

41 Commits

Author SHA1 Message Date
Berat Kocak 75f4b13683 PR2Bib/src/domainBib/Kunde.java aktualisiert 2024-11-18 14:15:20 +01:00
Berat Kocak 0056bdea79 PR2Bib/src/domainBib/Benutzer.java gelöscht 2024-11-18 14:15:11 +01:00
Berat Kocak 1c6d96fe39 PR2Bib/src/guiBib/BibliothekGUI.java aktualisiert 2024-11-18 14:15:03 +01:00
Berat Kocak b11b2ae858 PR2Bib/src/guiBib/BibliothekGUI.java aktualisiert 2024-11-18 10:27:14 +01:00
Berat Kocak aca14d1590 fixed search filter 2024-11-18 10:25:47 +01:00
Berat Kocak 764af71698 added ki prompts and answers to code 2024-11-18 09:05:33 +01:00
Berat Kocak 1f2d4b206e merge conflict 2024-11-17 21:15:38 +01:00
Berat Kocak 50e138bc1f Merge branch 'main' of https://gitty.informatik.hs-mannheim.de/3010293/PR2Bibliothek 2024-11-17 21:14:31 +01:00
Berat Kocak 874397badc deleted sysout statements used for testing 2024-11-17 21:10:43 +01:00
Berat Kocak 3dc5790cb7 commit on laptop test 2024-11-14 21:57:25 +01:00
Berat Kocak 12c332d77e added filter function for media browse 2024-11-14 19:04:48 +01:00
Berat Kocak af5961609d added search function jlabel output to include kennnummer of medium 2024-11-14 17:55:53 +01:00
Berat Kocak 5165365c17 Merge remote-tracking branch 'origin/main' into main 2024-11-14 17:52:21 +01:00
Berat Kocak 462242c4e4 changed how program handles dates and added search tab 2024-11-14 17:48:28 +01:00
Berat Kocak 1bc6e0fe7b fragen.txt aktualisiert 2024-11-12 16:48:42 +01:00
Berat Kocak eb3530f793 fragen.txt mit Antworten aus der Laborstunde vom 12.11.24 ergänzt 2024-11-12 16:46:58 +01:00
Berat Kocak 514303cad9 added fragen and vorgehen to git repo 2024-11-11 21:29:03 +01:00
Berat Kocak 8b1904c138 added verlängerung as feature 2024-11-11 00:12:11 +01:00
Berat Kocak 560dca7110 added register new user feature 2024-11-10 19:06:24 +01:00
Berat Kocak db2ee4f093 added method to view library catalogue without logging in 2024-11-10 18:43:44 +01:00
Berat Kocak 36d06efb2f added pay debts feature 2024-11-10 18:16:14 +01:00
Berat Kocak 68914473f9 commit before merge 2024-11-10 17:40:31 +01:00
Berat Kocak d7d4ca8318 commit to save progress 2024-11-10 12:51:49 +01:00
Berat Kocak 8f36814b94 small changes 2024-11-09 16:28:51 +01:00
Berat Kocak 250df5fe99 small fix to kundenAuflisten 2024-11-09 16:21:53 +01:00
Berat Kocak 3e70dacdc2 added Schulden double to Kunde + adminPanel and userList for admin
window
2024-11-09 16:20:18 +01:00
Berat Kocak bdb34ab86b check? 2024-11-09 14:20:10 +01:00
Berat Kocak 3f4d6fb828 added the ausleihen and rückgabe feature to feature1 branch 2024-11-09 14:13:54 +01:00
Berat Kocak ca43e912ac Merge branch 'feature' 2024-11-09 12:05:18 +01:00
Berat Kocak c16835d93e testing feature branch 2024-11-09 12:01:49 +01:00
Berat d63ddf4806 making rep up to date before switching to feature branch to add
ausleihen methode to project
2024-11-09 11:56:57 +01:00
Berat 173c718940 added Kunde class and wrote myBooks GUI method 2024-11-09 11:47:02 +01:00
Berat f13c38e510 backup commit 2024-11-09 11:33:25 +01:00
Berat 39f7af08e7 deleted BibEntries class to put it into the makeEntries method of
Bibliothek
2024-11-08 20:18:50 +01:00
Berat 82f37f745b final commit of the day 2024-11-08 20:17:53 +01:00
Berat 9d72491ed8 made changes to benutzer, bibliothek and added gui main method 2024-11-08 19:51:20 +01:00
Berat 8d368cb385 made new BibEntries with content from bibliothek class 2024-11-08 17:15:07 +01:00
Berat 79730ba401 added medium objects and lists to bibliothek class 2024-11-08 16:50:36 +01:00
Berat c513feecca added Benutzer class with Kunde and Mitarbeiter subclasses 2024-11-08 16:33:47 +01:00
Berat 03d0a0f52e added abstract class medium and classed for books, dvd, cd, videogame
and boradgame
2024-11-08 16:24:40 +01:00
Berat 86c611ad15 made first classed 2024-11-08 16:13:27 +01:00
13 changed files with 2070 additions and 8 deletions

2
PR2Bib/.gitignore vendored 100644
View File

@ -0,0 +1,2 @@
/.project
/.classpath

View File

@ -1,8 +0,0 @@
public class Test {
public static void main(String[] args) {
System.out.println("XYZ");
}
}

View File

@ -0,0 +1,743 @@
package domainBib;
import java.awt.Component;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import javax.swing.JLabel;
import guiBib.*;
public class Bibliothek {
static ArrayList<Buch> bücherListe = new ArrayList<>();
static ArrayList<CD> cdListe = new ArrayList<>();
static ArrayList<DVD> dvdListe = new ArrayList<>();
static ArrayList<Brettspiel> brettspielListe = new ArrayList<>();
static ArrayList<Videospiel> videospielListe = new ArrayList<>();
static ArrayList<Kunde> kundenListe = new ArrayList<>();
static ArrayList<Medium> katalog = new ArrayList<>();
//static ArrayList<Medium> zurzeitAusgeliehen = new ArrayList<>();
public static void makeEntries() {
Buch b1 = new Buch("Buch1", 2000, "Autor1", 10001);
Buch b2 = new Buch("Buch2", 2000, "Autor2",10002);
Buch b3 = new Buch("Buch3", 2000, "Autor3", 10003);
Buch b4 = new Buch("Buch4", 2000, "Autor4", 10004);
Buch b5 = new Buch("Buch5", 2000, "Autor5", 10005);
bücherListe.add(b1);
bücherListe.add(b2);
bücherListe.add(b3);
bücherListe.add(b4);
bücherListe.add(b5);
DVD d1 = new DVD("DVD1", 2000, "01.01.2020", 20001);
DVD d2 = new DVD("DVD2", 2000, "01.01.2020", 20002);
DVD d3 = new DVD("DVD3", 2000, "01.01.2020", 20003);
DVD d4 = new DVD("DVD4", 2000, "01.01.2020", 20004);
DVD d5 = new DVD("DVD5", 2000, "01.01.2020", 20005);
dvdListe.add(d1);
dvdListe.add(d2);
dvdListe.add(d3);
dvdListe.add(d4);
dvdListe.add(d5);
CD c1 = new CD("CD1", 2000, "01.01.2020", 30001);
CD c2 = new CD("CD2", 2000, "01.01.2020", 30002);
CD c3 = new CD("CD3", 2000, "01.01.2020", 30003);
CD c4 = new CD("CD4", 2000, "01.01.2020", 30004);
CD c5 = new CD("CD5", 2000, "01.01.2020", 30005);
cdListe.add(c1);
cdListe.add(c2);
cdListe.add(c3);
cdListe.add(c4);
cdListe.add(c5);
Brettspiel bs1 = new Brettspiel("Brettspiel1", 2000, "01.01.2020", 40001);
Brettspiel bs2 = new Brettspiel("Brettspiel2", 2000, "01.01.2020", 40002);
Brettspiel bs3 = new Brettspiel("Brettspiel3", 2000, "01.01.2020", 40003);
Brettspiel bs4 = new Brettspiel("Brettspiel4", 2000, "01.01.2020", 40004);
Brettspiel bs5 = new Brettspiel("Brettspiel5", 2000, "01.01.2020", 40005);
brettspielListe.add(bs1);
brettspielListe.add(bs2);
brettspielListe.add(bs3);
brettspielListe.add(bs4);
brettspielListe.add(bs5);
Videospiel v1 = new Videospiel("Videospiel1", 2000, "01.01.2020", 50001);
Videospiel v2 = new Videospiel("Videospiel2", 2000, "01.01.2020", 50002);
Videospiel v3 = new Videospiel("Videospiel3", 2000, "01.01.2020", 50003);
Videospiel v4 = new Videospiel("Videospiel4", 2000, "01.01.2020", 50004);
Videospiel v5 = new Videospiel("Videospiel5", 2000, "01.01.2020", 50005);
videospielListe.add(v1);
videospielListe.add(v2);
videospielListe.add(v3);
videospielListe.add(v4);
videospielListe.add(v5);
Kunde k1 = new Kunde(true, 1);
Kunde k2 = new Kunde(true, 2);
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);
kundenListe.add(k4);
kundenListe.add(k5);
for(Buch b: bücherListe) {
katalog.add(b);
}
for(DVD d: dvdListe) {
katalog.add(d);
}
for(CD c: cdListe) {
katalog.add(c);
}
for(Brettspiel bs: brettspielListe) {
katalog.add(bs);
}
for(Videospiel vs: videospielListe) {
katalog.add(vs);
}
}
public static Kunde validateLogin(int login) {
for(Kunde k: kundenListe) {
if(k.getKennnummer() == login) {
return k;
}
}
return null;
}
public static ArrayList<JLabel> buchAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(bücherListe.size() == 0) {
JLabel text = new JLabel("Keine Bücher mehr vorhanden.");
jlabelList.add(text);
return jlabelList;
}
for(Buch b: bücherListe) {
JLabel buch = new JLabel("Titel: " + b.getTitel()
+ ", Autor: " + b.getAutor()
+ ", Jahr: " + b.getJahr()
+ ", Kennnummer: " + b.getKennnummer());
jlabelList.add(buch);
}
return jlabelList;
}
public static ArrayList<JLabel> dvdAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(dvdListe.size() == 0) {
JLabel text = new JLabel("Keine DVDs mehr vorhanden.");
jlabelList.add(text);
return jlabelList;
}
for(DVD d: dvdListe) {
JLabel dvd = new JLabel("Titel: " + d.getTitel()
+ ", Jahr: " + d.getJahr()
+ ", Kennnummer: " + d.getKennnummer());
jlabelList.add(dvd);
}
return jlabelList;
}
public static ArrayList<JLabel> cdAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(cdListe.size() == 0) {
JLabel text = new JLabel("Keine CDs mehr vorhanden.");
jlabelList.add(text);
return jlabelList;
}
for(CD c: cdListe) {
JLabel cd = new JLabel("Titel: " + c.getTitel()
+ ", Jahr: " + c.getJahr()
+ ", Kennnummer: " + c.getKennnummer());
jlabelList.add(cd);
}
return jlabelList;
}
public static ArrayList<JLabel> bsAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(brettspielListe.size() == 0) {
JLabel text = new JLabel("Keine Brettspiele mehr vorhanden.");
jlabelList.add(text);
return jlabelList;
}
for(Brettspiel bs: brettspielListe) {
JLabel bsp = new JLabel("Titel: " + bs.getTitel()
+ ", Jahr: " + bs.getJahr()
+ ", Kennnummer: " + bs.getKennnummer());
jlabelList.add(bsp);
}
return jlabelList;
}
public static ArrayList<JLabel> vsAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(videospielListe.size() == 0) {
JLabel text = new JLabel("Keine Videospiele mehr vorhanden.");
jlabelList.add(text);
return jlabelList;
}
for(Videospiel v: videospielListe) {
JLabel vsp = new JLabel("Titel: " + v.getTitel()
+ ", Jahr: " + v.getJahr()
+ ", Kennnummer: " + v.getKennnummer());
jlabelList.add(vsp);
}
return jlabelList;
}
public static ArrayList<JLabel> ausgelieheneListe(Kunde k) {
ArrayList<JLabel> jlabelList = new ArrayList<>();
ArrayList<Medium> ausgelieheneListe = k.returnAusgelieheneMedien();
if(ausgelieheneListe.size() == 0) {
JLabel text = new JLabel("Nichts ausgeliehen.");
jlabelList.add(text);
return jlabelList;
}
for(Medium m: ausgelieheneListe) {
if(m.getAutor() != null) {
JLabel med = new JLabel("Titel: " + m.getTitel()
+ ", Autor: " + m.getAutor()
+ ", Jahr: " + m.getJahr()
+ ", Kennnummer: " + m.getKennnummer()
+ ", ausgeliehen am: " + m.getAusleihdatum()
+ ", Verlängerungen: " + m.getVerlängerungen());
jlabelList.add(med);
}
if(m.getAutor() == null) {
JLabel med = new JLabel("Titel: " + m.getTitel()
+ ", Jahr: " + m.getJahr()
+ ", Kennnummer: " +m.getKennnummer()
+ ", ausgeliehen am: " + m.getAusleihdatum()
+ ", Verlängerungen: " + m.getVerlängerungen());
jlabelList.add(med);
}
}
return jlabelList;
}
public static void ausleihe(int kennnummer, String datum, 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;
b.setAusleihdatum(datum);
bücherListe.remove(b);
k.addToList(b);
break;
case "DVD":
DVD d = (DVD) m;
d.setAusleihdatum(datum);
dvdListe.remove(d);
k.addToList(d);
break;
case "CD":
CD c = (CD) m;
c.setAusleihdatum(datum);
cdListe.remove(c);
k.addToList(c);
break;
case "Brettspiel":
Brettspiel bs = (Brettspiel) m;
bs.setAusleihdatum(datum);
brettspielListe.remove(bs);
k.addToList(bs);
break;
case "Videospiel":
Videospiel vs = (Videospiel) m;
vs.setAusleihdatum(datum);
videospielListe.remove(vs);
k.addToList(vs);
break;
default:
break;
}
}
}
}
public static void rückgabe(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) {
k.removeFromList(m);
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();
}
break;
case "DVD":
DVD d = (DVD) m;
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
String titelDVD = d.getTitel();
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);
BibliothekGUI.noMoneyOwed();
}
break;
case "CD":
CD c = (CD) m;
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
String titelCD = c.getTitel();
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);
BibliothekGUI.noMoneyOwed();
}
break;
case "Brettspiel":
Brettspiel bs = (Brettspiel) m;
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
String titelBS = bs.getTitel();
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);
BibliothekGUI.noMoneyOwed();
}
break;
case "Videospiel":
Videospiel vs = (Videospiel) m;
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
String titelVS = vs.getTitel();
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);
BibliothekGUI.noMoneyOwed();
}
break;
default:
break;
}
}
}
}
private static double berechneGebühren(Buch b, int kennnummer, String rückgabeDatum) {
String ausleihDatum = b.getAusleihdatum();
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0;
if(tageAusgeliehen <= 28) {
return kosten = 0;
}
int dayCounter = 0;
while(tageAusgeliehen > 28) {
if(dayCounter >=8) {
kosten += 2;
dayCounter++;
tageAusgeliehen--;
}else if (dayCounter <= 7){
kosten += 1;
dayCounter++;
tageAusgeliehen--;
}
}
return kosten;
}
private static double berechneGebühren(DVD d, int kennnummer, String rückgabeDatum) {
String ausleihDatum = d.getAusleihdatum();
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0;
if(tageAusgeliehen <= 7) {
return kosten = 0;
}
int dayCounter = 0;
while(tageAusgeliehen >= 8) {
if(dayCounter >=8) {
kosten += 2;
dayCounter++;
tageAusgeliehen--;
}else if (dayCounter <= 7){
kosten += 1;
dayCounter++;
tageAusgeliehen--;
}
}
return kosten;
}
private static double berechneGebühren(CD c, int kennnummer, String rückgabeDatum) {
String ausleihDatum = c.getAusleihdatum();
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0;
if(tageAusgeliehen <= 14) {
return kosten = 0;
}
int dayCounter = 0;
while(tageAusgeliehen >= 15) {
if(dayCounter >=8) {
kosten += 2;
dayCounter++;
tageAusgeliehen--;
}else if (dayCounter <= 7){
kosten += 1;
dayCounter++;
tageAusgeliehen--;
}
}
return kosten;
}
private static double berechneGebühren(Brettspiel bs, int kennnummer, String rückgabeDatum) {
String ausleihDatum = bs.getAusleihdatum();
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0;
if(tageAusgeliehen <= 14) {
return kosten = 0;
}
int dayCounter = 0;
while(tageAusgeliehen >= 15) {
if(dayCounter >=8) {
kosten += 2;
dayCounter++;
tageAusgeliehen--;
}else if (dayCounter <= 7){
kosten += 1;
dayCounter++;
tageAusgeliehen--;
}
}
return kosten;
}
private static double berechneGebühren(Videospiel vs, int kennnummer, String rückgabeDatum) {
String ausleihDatum = vs.getAusleihdatum();
double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0;
if(tageAusgeliehen <= 28) {
return kosten = 0;
}
int dayCounter = 0;
while(tageAusgeliehen >= 29) {
if(dayCounter >=8) {
kosten += 2;
dayCounter++;
tageAusgeliehen--;
}else if (dayCounter <= 7){
kosten += 1;
dayCounter++;
tageAusgeliehen--;
}
}
return kosten;
}
public static boolean zahlungRegistrieren(int zahlung, double kosten) {
boolean isTrue = false;
if(kosten - zahlung <= 0) {
isTrue = true;
} else {
isTrue = false;
}
return isTrue;
}
private static double findDifference(String ausleihDatum, String rückgabeDatum) {
LocalDate ausgeliehenTag = LocalDate.parse(ausleihDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
LocalDate rückgabeTag = LocalDate.parse(rückgabeDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
double differenzInTagen = ChronoUnit.DAYS.between(ausgeliehenTag, rückgabeTag);
return differenzInTagen;
}
public static int bücherLänge() {
return bücherListe.size();
}
public static int dvdLänge() {
return dvdListe.size();
}
public static int cdLänge() {
return cdListe.size();
}
public static int bsLänge() {
return brettspielListe.size();
}
public static int vsLänge() {
return videospielListe.size();
}
public static int getUserListLength() {
return kundenListe.size();
}
public static ArrayList<JLabel> nutzerAuflisten() {
ArrayList<JLabel> jlabelList = new ArrayList<>();
if(kundenListe.size() == 0) {
JLabel text = new JLabel("Keine Nutzer registriert.");
jlabelList.add(text);
return jlabelList;
}
for(Kunde k: kundenListe) {
JLabel cd = new JLabel("Kennnummer: " + k.getKennnummer()
+ ", Student: " + k.istStudent()
+ ", Schulden: " + k.getSchulden());
jlabelList.add(cd);
}
return jlabelList;
}
public static int getNewKennnummer() {
int newKennnummer = 0;
for(Kunde k: kundenListe) {
int nummer = k.getKennnummer();
if(nummer > newKennnummer) {
newKennnummer = nummer;
}
}
newKennnummer += 1;
return newKennnummer;
}
public static void addCustomer(Kunde k) {
kundenListe.add(k);
}
public static boolean verlängerungMöglich(int kennnummer, Kunde k) {
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);
return true;
} else {
return false;
}
}
}
return false;
}
private static void datumVerlängern(Medium m, Kunde k) {
String text = m.getClass().toString();
int lastDotIndex = text.lastIndexOf(".");
String substring = text.substring(lastDotIndex + 1);
String ausleihDatum = m.getAusleihdatum();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate ausgeliehenTag = LocalDate.parse(ausleihDatum, formatter);
LocalDate neuerTag = ausgeliehenTag.plusDays(28);
String neuesAusleihDatum = neuerTag.format(formatter);
m.setAusleihdatum(neuesAusleihDatum);
}
public static void changeOwedMenu2(String kennnummerStr, int amount) {
int kennnummer = Integer.parseInt(kennnummerStr);
for(Kunde k: kundenListe) {
if(k.getKennnummer() == kennnummer) {
k.setSchulden(amount);
}
}
}
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;
}
}

View File

@ -0,0 +1,52 @@
package domainBib;
import java.util.ArrayList;
public class Kunde {
private int kennnummer;
private boolean istStudent;
private double schulden;
private ArrayList<Medium> ausgelieheneMedien = new ArrayList<>();
public Kunde(boolean istStudent, int kennnummer) {
this.istStudent = istStudent;
this.kennnummer = kennnummer;
this.schulden = 0;
}
public int getKennnummer() {
return kennnummer;
}
public void setSchulden(double a) {
schulden = a;
}
public void addSchulden(double b) {
schulden += b;
}
public double getSchulden(){
return schulden;
}
public void addToList(Medium m) {
ausgelieheneMedien.add(m);
}
public boolean istStudent() {
return istStudent;
}
public ArrayList<Medium> returnAusgelieheneMedien(){
return ausgelieheneMedien;
}
public int ausgelieheneMedienLänge() {
return ausgelieheneMedien.size();
}
public void removeFromList(Medium m) {
ausgelieheneMedien.remove(m);
}
}

View File

@ -0,0 +1,321 @@
package domainBib;
abstract class Medium {
private String titel;
private int erscheinungsjahr;
private String fälligkeitsDatum;
private int kennnummer;
private String autor;
private String ausleihDatum;
private int verlängerungen;
abstract public String getTitel();
abstract public int getJahr();
abstract public String getAusleihdatum();
abstract public void setAusleihdatum(String a);
abstract public int getKennnummer();
abstract public int getVerlängerungen();
abstract public void setVerlängerung();
public String getAutor(){
return null;
}
}
class Buch extends Medium{
private String titel;
private int erscheinungsjahr;
private String autor;
private String fälligkeitsDatum;
private int kennnummer;
private String ausleihDatum;
private int verlängerungen;
public Buch(String titel, int erscheinungsjahr, String autor, int kennnummer) {
this.titel = titel;
this.erscheinungsjahr = erscheinungsjahr;
this.autor = autor;
this.fälligkeitsDatum = fälligkeitsDatum;
this.kennnummer = kennnummer;
this.verlängerungen = 3;
}
public String getTitel() {
return titel;
}
public int getVerlängerungen() {
return verlängerungen;
}
public int getJahr() {
return erscheinungsjahr;
}
public String getAutor() {
return autor;
}
public void setFälligkeitsDatum(String datum) {
this.fälligkeitsDatum = datum;
}
public String getFälligkeitsDatum() {
return this.fälligkeitsDatum;
}
public int getKennnummer() {
return kennnummer;
}
public String getAusleihdatum() {
return ausleihDatum;
}
public void setVerlängerung() {
verlängerungen--;
}
public void setAusleihdatum(String datum) {
this.ausleihDatum = datum;
}
}
class DVD extends Medium{
private String titel;
private int erscheinungsjahr;
private String fälligkeitsDatum;
private int kennnummer;
private String autor;
private String ausleihDatum;
private int verlängerungen;
public DVD(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
this.titel = titel;
this.erscheinungsjahr = erscheinungsjahr;
this.fälligkeitsDatum = fälligkeitsDatum;
this.kennnummer = kennnummer;
this.autor = null;
this.verlängerungen = 0;
}
public String getTitel() {
return titel;
}
public int getJahr() {
return erscheinungsjahr;
}
public int getVerlängerungen() {
return verlängerungen;
}
public void setAusleihdatum(String datum) {
this.ausleihDatum = datum;
}
public void setVerlängerung() {
verlängerungen =- 1;
}
public String getAutor() {
return null;
}
public String getDatum() {
return fälligkeitsDatum;
}
public int getKennnummer() {
return kennnummer;
}
public void setFälligkeitsDatum(String datum) {
this.fälligkeitsDatum = datum;
}
public String getFälligkeitsDatum() {
return this.fälligkeitsDatum;
}
public String getAusleihdatum() {
return ausleihDatum;
}
}
class CD extends Medium{
private String titel;
private int erscheinungsjahr;
private String fälligkeitsDatum;
private int kennnummer;
private String autor;
private String ausleihDatum;
private int verlängerungen;
public CD(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
this.titel = titel;
this.erscheinungsjahr = erscheinungsjahr;
this.fälligkeitsDatum = fälligkeitsDatum;
this.kennnummer = kennnummer;
this.autor = null;
this.verlängerungen = 0;
}
public void setVerlängerung() {
verlängerungen =- 1;
}
public void setAusleihdatum(String datum) {
this.ausleihDatum = datum;
}
public String getTitel() {
return titel;
}
public int getJahr() {
return erscheinungsjahr;
}
public String getAutor() {
return null;
}
public int getVerlängerungen() {
return verlängerungen;
}
public String getDatum() {
return fälligkeitsDatum;
}
public int getKennnummer() {
return kennnummer;
}
public void setFälligkeitsDatum(String datum) {
this.fälligkeitsDatum = datum;
}
public String getFälligkeitsDatum() {
return this.fälligkeitsDatum;
}
public String getAusleihdatum() {
return ausleihDatum;
}
}
class Brettspiel extends Medium{
private String titel;
private int erscheinungsjahr;
private String fälligkeitsDatum;
private int kennnummer;
private String autor;
private String ausleihDatum;
private int verlängerungen;
public Brettspiel(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
this.titel = titel;
this.erscheinungsjahr = erscheinungsjahr;
this.fälligkeitsDatum = fälligkeitsDatum;
this.kennnummer = kennnummer;
this.autor = null;
this.verlängerungen = 0;
}
public String getTitel() {
return titel;
}
public void setVerlängerung() {
verlängerungen =- 1;
}
public int getJahr() {
return erscheinungsjahr;
}
public String getAutor() {
return null;
}
public String getDatum() {
return fälligkeitsDatum;
}
public int getVerlängerungen() {
return verlängerungen;
}
public int getKennnummer() {
return kennnummer;
}
public void setFälligkeitsDatum(String datum) {
this.fälligkeitsDatum = datum;
}
public String getFälligkeitsDatum() {
return this.fälligkeitsDatum;
}
public void setAusleihdatum(String datum) {
this.ausleihDatum = datum;
}
public String getAusleihdatum() {
return ausleihDatum;
}
}
class Videospiel extends Medium{
private String titel;
private int erscheinungsjahr;
private String fälligkeitsDatum;
private int kennnummer;
private String autor;
private String ausleihDatum;
private int verlängerungen;
public Videospiel(String titel, int erscheinungsjahr, String fälligkeitsDatum, int kennnummer) {
this.titel = titel;
this.erscheinungsjahr = erscheinungsjahr;
this.fälligkeitsDatum = fälligkeitsDatum;
this.kennnummer = kennnummer;
this.autor = null;
this.verlängerungen = 1;
}
public void setAusleihdatum(String datum) {
this.ausleihDatum = datum;
}
public String getTitel() {
return titel;
}
public void setVerlängerung() {
verlängerungen =- 1;
}
public int getJahr() {
return erscheinungsjahr;
}
public int getVerlängerungen() {
return verlängerungen;
}
public String getAutor() {
return null;
}
public String getDatum() {
return fälligkeitsDatum;
}
public int getKennnummer() {
return kennnummer;
}
public void setFälligkeitsDatum(String datum) {
this.fälligkeitsDatum = datum;
}
public String getFälligkeitsDatum() {
return this.fälligkeitsDatum;
}
public String getAusleihdatum() {
return ausleihDatum;
}
}

View File

@ -0,0 +1,746 @@
package guiBib;
import domainBib.*;
import java.time.LocalDateTime;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class BibliothekGUI extends JFrame implements ActionListener{
private static CardLayout cl = new CardLayout();
private static JPanel mainPanel = new JPanel(cl);
public static void main(String[] args) {
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());
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(datumArray[0]);});
JPanel buttonGrid = new JPanel(new GridLayout(1,2,10,10));
buttonGrid.add(b0);
buttonGrid.add(b3);
loginGrid.add(buttonGrid, BorderLayout.SOUTH);
JPanel bp = new JPanel(new GridLayout(1,2,10,10));
JButton b1 = new JButton("Abbrechen");
b1.addActionListener(e -> dispose());
JButton b2 = new JButton("OK");
b2.addActionListener(e -> {
String loginStr = field1.getText();
Integer login = Integer.parseInt(loginStr);
if(login == 1) {openAdmin();}else {
Kunde k = Bibliothek.validateLogin(login);
String text = k.getClass().toString();
int lastDotIndex = text.lastIndexOf(".");
String substring = text.substring(lastDotIndex + 1);
if(substring.equals("Kunde")) {openMainMenu(k, datumArray[0]);}
}});
bp.add(b1);
bp.add(b2);
loginPanel.add(bp, BorderLayout.SOUTH);
add(mainPanel);
setVisible(true);
setSize(1200, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel.add(loginPanel, "loginPanel");
cl.show(mainPanel, "loginPanel");
}
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));
JButton b2 = new JButton("DVDs");
b2.addActionListener(e -> dvdMenu(k));
JButton b3 = new JButton("CDs");
b3.addActionListener(e -> cdMenu(k));
JButton b4 = new JButton("Brettspiele");
b4.addActionListener(e -> bsMenu(k));
JButton b5 = new JButton("Videospiele");
b5.addActionListener(e -> vsMenu(k));
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();
JPanel registerPanel = new JPanel(new GridLayout(3,1,10,10));
JLabel text0 = new JLabel("Ihre Kennnummmer wird " + newKennnummer + " sein.");
JLabel text1 = new JLabel("Die Mitgliedsgebühren betragen 10€ jährlich, für Studenten 5€.");
JCheckBox studentOrNot = new JCheckBox("Sind Sie Student? Falls ja bitte anklicken.");
registerPanel.add(text0);
registerPanel.add(text1);
registerPanel.add(studentOrNot);
registerMenu.add(registerPanel, BorderLayout.CENTER);
final boolean[] isStudent = {false};
studentOrNot.addActionListener(e -> isStudent[0] = studentOrNot.isSelected());
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
JButton b2 = new JButton("OK");
b2.addActionListener(e -> {
Kunde k = new Kunde(isStudent[0], newKennnummer);
if(isStudent[0] == true) {
int amount = 5;
k.setSchulden(amount);
} else {
int amount = 10;
k.setSchulden(amount);
}
Bibliothek.addCustomer(k);
cl.show(mainPanel, "loginPanel");
});
JButton b1 = new JButton("Abbrechen");
b1.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
bg.add(b1);
bg.add(b2);
registerMenu.add(bg, BorderLayout.SOUTH);
mainPanel.add(registerMenu, "registerMenu");
cl.show(mainPanel, "registerMenu");
}
private static void openAdmin() {
JPanel adminPanel = new JPanel(new BorderLayout());
JPanel adminGrid = new JPanel(new GridLayout(2, 1, 10, 10));
JLabel text1 = new JLabel("Admin-Bildschirm");
adminPanel.add(text1, BorderLayout.NORTH);
JButton b0 = new JButton("Ausloggen");
b0.addActionListener(e -> cl.show(mainPanel, "loginPanel"));
adminPanel.add(b0, BorderLayout.SOUTH);
JButton b1 = new JButton("Liste aller Kunden ansehen");
b1.addActionListener(e -> userListMenu());
JButton b2 = new JButton("Gebühren überschreiben");
b2.addActionListener(e -> changeOwedMenu());
adminGrid.add(b1);
adminGrid.add(b2);
adminPanel.add(adminGrid, BorderLayout.CENTER);
mainPanel.add(adminPanel, "adminMenu");
cl.show(mainPanel, "adminMenu");
}
private static void userListMenu() {
int i = Bibliothek.getUserListLength();
JPanel userListPanel = new JPanel(new GridLayout(i+1, 2, 10, 10));
ArrayList<JLabel> jlabelList = Bibliothek.nutzerAuflisten();
for(JLabel j: jlabelList) {
userListPanel.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> cl.show(mainPanel, "adminMenu"));
userListPanel.add(b1, BorderLayout.SOUTH);
mainPanel.add(userListPanel, "userList");
cl.show(mainPanel, "userList");
}
private static void changeOwedMenu() {
JPanel changeOwedMenu = new JPanel(new BorderLayout());
int i = Bibliothek.getUserListLength();
JPanel userListPanel = new JPanel(new GridLayout(i+5, 2, 10, 10));
JLabel text1 = new JLabel("Alle Nutzer:");
changeOwedMenu.add(text1, BorderLayout.NORTH);
ArrayList<JLabel> jlabelList = Bibliothek.nutzerAuflisten();
for(JLabel j: jlabelList) {
userListPanel.add(j);
}
JLabel text0 = new JLabel("Geben Sie die Kennnumer des Nutzers ein: ");
userListPanel.add(text0);
JTextField inputField1 = new JTextField(20);
userListPanel.add(inputField1);
JLabel text2 = new JLabel("Geben Sie die Menge ein:");
userListPanel.add(text2);
JTextField inputField2 = new JTextField(20);
userListPanel.add(inputField2);
changeOwedMenu.add(userListPanel,BorderLayout.CENTER);
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
JButton b1 = new JButton("Abbrechen");
b1.addActionListener(e -> cl.show(mainPanel, "adminMenu"));
JButton b2 = new JButton("OK");
b2.addActionListener(e -> {
String kennnummer = inputField1.getText().toString();
String amountStr = inputField2.getText().toString();
int amount = Integer.parseInt(amountStr);
if(kennnummer == "") {
cl.show(mainPanel, "adminMenu");
} else {
Bibliothek.changeOwedMenu2(kennnummer, amount);
cl.show(mainPanel, "adminMenu");
}
});
bg.add(b1);
bg.add(b2);
changeOwedMenu.add(bg, BorderLayout.SOUTH);
mainPanel.add(changeOwedMenu, "changeOwed");
cl.show(mainPanel, "changeOwed");
}
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");
b2.addActionListener(e -> dvdMenu(k));
JButton b3 = new JButton("CDs");
b3.addActionListener(e -> cdMenu(k));
JButton b4 = new JButton("Brettspiele");
b4.addActionListener(e -> bsMenu(k));
JButton b5 = new JButton("Videospiele");
b5.addActionListener(e -> vsMenu(k));
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 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);
int i = k.ausgelieheneMedienLänge();
JPanel info = new JPanel(new GridLayout(i+2, 1, 10, 10));
JLabel text1 = new JLabel("Ihre Ausgeliehene Medien:");
verlängerungPanel.add(text0, BorderLayout.NORTH);
ArrayList<JLabel> jlabelList = Bibliothek.ausgelieheneListe(k);
info.add(text1);
for(JLabel j: jlabelList) {
info.add(j, BorderLayout.CENTER);
}
info.add(inputField);
verlängerungPanel.add(info, BorderLayout.CENTER);
JPanel bg = new JPanel(new GridLayout(1,2,10,10));
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(i>0) {
int kennnummer = Integer.parseInt(inputField.getText());
boolean verlängerungMöglich = Bibliothek.verlängerungMöglich(kennnummer, k);
if(verlängerungMöglich == true){
verlängerung1();
} else {
verlängerung2();
}
} else {
cl.show(mainPanel, "mediumPanel");
}
});
JButton b2 = new JButton("Abbrechen");
b2.addActionListener(e -> {
cl.show(mainPanel, "mediumPanel");
});
bg.add(b2);
bg.add(b1);
if(i == 0) {
verlängerungPanel.remove(inputField);
}
verlängerungPanel.add(bg, BorderLayout.SOUTH);
mainPanel.add(verlängerungPanel, "Verlängerung0");
cl.show(mainPanel, "Verlängerung0");
}
private static void verlängerung1() {
JPanel v1 = new JPanel(new BorderLayout());
JLabel text1 = new JLabel("Verlängerung erfolgreich.");
v1.add(text1, BorderLayout.CENTER);
JButton b = new JButton("OK");
b.addActionListener(e -> {
cl.show(mainPanel, "mediumPanel");
mainPanel.remove(v1);
mainPanel.revalidate();
mainPanel.repaint();
});
v1.add(b, BorderLayout.SOUTH);
mainPanel.add(v1, "Verlängerung1");
cl.show(mainPanel, "Verlängerung1");
}
private static void verlängerung2() {
JPanel v2 = new JPanel(new BorderLayout());
JLabel text1 = new JLabel("Verlängerung fehlgeschlagen.");
v2.add(text1, BorderLayout.CENTER);
JButton b = new JButton("OK");
b.addActionListener(e -> {
cl.show(mainPanel, "mediumPanel");
mainPanel.remove(v2);
mainPanel.revalidate();
mainPanel.repaint();
// mainPanel.remove(v2);
});
v2.add(b, BorderLayout.SOUTH);
mainPanel.add(v2, "Verlängerung2");
cl.show(mainPanel, "Verlängerung2");
}
private static void ausleihenMenü(Kunde k, String datum) {
JPanel ausleihMenü = 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();
});
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);
inputMenu.add(text1);
inputMenu.add(inputField1);
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");
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, String datum) {
JPanel rückgabeMenü = 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ü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);
inputMenu.add(text1);
inputMenu.add(inputField1);
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");
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");
}
private static void bookMenu(Kunde k) {
int i = Bibliothek.bücherLänge();
JPanel buchMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
JLabel text0 = new JLabel("Ausleihe für 4 Wochen, bis zu 3 Mal verlängerbar.");
buchMenü.add(text0);
ArrayList<JLabel> jlabelList = Bibliothek.buchAuflisten();
for(JLabel j: jlabelList) {
buchMenü.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(k == null) {
cl.show(mainPanel, "browsePanel");
} else {
cl.show(mainPanel, "suchenMenu");}
});
buchMenü.add(b1, BorderLayout.SOUTH);
mainPanel.add(buchMenü, "Bücher");
cl.show(mainPanel, "Bücher");
}
private static void dvdMenu(Kunde k) {
int i = Bibliothek.dvdLänge();
JPanel dvdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
JLabel text0 = new JLabel("Ausleihe für 1 Woche, keine Verlängerung.");
dvdMenü.add(text0);
ArrayList<JLabel> jlabelList = Bibliothek.dvdAuflisten();
for(JLabel j: jlabelList) {
dvdMenü.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(k == null) {
cl.show(mainPanel, "browsePanel");
} else {
cl.show(mainPanel, "suchenMenu");}
});
dvdMenü.add(b1, BorderLayout.SOUTH);
mainPanel.add(dvdMenü, "DVDs");
cl.show(mainPanel, "DVDs");
}
private static void cdMenu(Kunde k) {
int i = Bibliothek.cdLänge();
JPanel cdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung.");
cdMenü.add(text0);
ArrayList<JLabel> jlabelList = Bibliothek.cdAuflisten();
for(JLabel j: jlabelList) {
cdMenü.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(k == null) {
cl.show(mainPanel, "browsePanel");
} else {
cl.show(mainPanel, "suchenMenu");}
}); cdMenü.add(b1, BorderLayout.SOUTH);
mainPanel.add(cdMenü, "CDs");
cl.show(mainPanel, "CDs");
}
private static void bsMenu(Kunde k) {
int i = Bibliothek.bsLänge();
JPanel bsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung.");
bsMenü.add(text0);
ArrayList<JLabel> jlabelList = Bibliothek.bsAuflisten();
for(JLabel j: jlabelList) {
bsMenü.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(k == null) {
cl.show(mainPanel, "browsePanel");
} else {
cl.show(mainPanel, "suchenMenu");}
}); bsMenü.add(b1, BorderLayout.SOUTH);
mainPanel.add(bsMenü, "Brettspiele");
cl.show(mainPanel, "Brettspiele");
}
private static void vsMenu(Kunde k) {
int i = Bibliothek.vsLänge();
JPanel vsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10));
JLabel text0 = new JLabel("Ausleihe für 4 Wochen, einmalige Verlängerung möglich.");
vsMenü.add(text0);
ArrayList<JLabel> jlabelList = Bibliothek.vsAuflisten();
for(JLabel j: jlabelList) {
vsMenü.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> {
if(k == null) {
cl.show(mainPanel, "browsePanel");
} else {
cl.show(mainPanel, "suchenMenu");}
}); vsMenü.add(b1, BorderLayout.SOUTH);
mainPanel.add(vsMenü, "Videospiele");
cl.show(mainPanel, "Videospiele");
}
public static void myBooks(Kunde k) {
int i = k.ausgelieheneMedienLänge();
JPanel myBookMenu = new JPanel(new BorderLayout());
JPanel info = new JPanel(new GridLayout(i, 1, 10, 10));
JLabel text1 = new JLabel("Ihre ausgeliehenen Medien:");
myBookMenu.add(text1, BorderLayout.NORTH);
ArrayList<JLabel> jlabelList = Bibliothek.ausgelieheneListe(k);
for(JLabel j: jlabelList) {
info.add(j);
}
JButton b1 = new JButton("OK");
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
myBookMenu.add(info, BorderLayout.CENTER);
myBookMenu.add(b1, BorderLayout.SOUTH);
mainPanel.add(myBookMenu, "AusgelieheneMedien");
cl.show(mainPanel, "AusgelieheneMedien");
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void zahlungsFenster(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 -> {
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");
}
}

1
PR2Bibliothekk 160000

@ -0,0 +1 @@
Subproject commit 46975a289a6313a2d2a9346ca60a34a1f97e92df

50
fragen.txt 100644
View File

@ -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.

58
ki-chatgpt/ki1.txt 100644
View File

@ -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.

20
ki-chatgpt/ki2.txt 100644
View File

@ -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.

14
ki-chatgpt/ki3.txt 100644
View File

@ -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".

45
ki-chatgpt/ki4.txt 100644
View File

@ -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. Heres 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.

18
vorgehen.txt 100644
View File

@ -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