diff --git a/src/main/java/org/example/framework/framecreater.java b/src/main/java/org/example/framework/framecreater.java index 04028cd..11697be 100644 --- a/src/main/java/org/example/framework/framecreater.java +++ b/src/main/java/org/example/framework/framecreater.java @@ -118,7 +118,7 @@ public class framecreater implements ActionListener { +"
"+(m.getTitel()==null ? "Unbekannt" : m.getTitel()) +"
"+(m.getBeschreibung()==null ? "NoData" : m.getBeschreibung()) +"
"+(m.getVerofentlichung()<=0 ? "NoData" : m.getVerofentlichung()) - +"
"+k.getAusgeliehen().get(m).toString() + +"
"+((m.getAusleizeit()*7)-((int) ChronoUnit.DAYS.between(k.getAusgeliehen().get(m),getDatum())))+" Tage" +""); vorlage.setBounds(10+(80*(counter%4)),100+(100*(counter/4)),80,100 ); vorlage.addActionListener(e -> { @@ -307,7 +307,7 @@ public class framecreater implements ActionListener { schuldenzuruck.addActionListener( e -> { if(!schuldenabezahlen.contains(k))schuldenabezahlen.add(k); }); - panel.add(schuldenzuruck); + if(k.getSchulden()>0.0)panel.add(schuldenzuruck); //studentstatus feld JLabel studentstatus=new JLabel("Student/Schühler: "+( k.isIstStudent()? "Ja" : "Nein")); @@ -413,18 +413,36 @@ public class framecreater implements ActionListener { kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().put(m,getDatum()); Startframe(); }); - //zuruckgeben button - JButton zuruckgeben=new JButton("Zurückgeben"); - zuruckgeben.setBounds(90,125,100,25); - zuruckgeben.addActionListener(e -> { - frame.dispose(); - m.setAusgeliehen(-1); - schuldenberechnung(m,kundenliste.get(getAngemeldeterbenuter())); - kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().remove(m); - profilframe(); - }); if(m.getAusgeliehen()<0 && getAngemeldeterbenuter()>=0)panel.add(ausleiehen); - if(m.getAusgeliehen()>=0 && m.getAusgeliehen()==getAngemeldeterbenuter())panel.add(zuruckgeben); + if(m.getAusgeliehen()>=0 && m.getAusgeliehen()==getAngemeldeterbenuter()){ + //zuruckgeben button + JButton zuruckgeben=new JButton("Zurückgeben"); + zuruckgeben.setBounds(90,125,100,25); + zuruckgeben.addActionListener(e -> { + frame.dispose(); + m.setAusgeliehen(-1); + schuldenberechnung(m,kundenliste.get(getAngemeldeterbenuter())); + kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().remove(m); + profilframe(); + }); + panel.add(zuruckgeben); + + //Verlängern button + JButton Verlängern=new JButton("Verlängern"); + Verlängern.setBounds(150,100,100,25); + Verlängern.addActionListener(e -> { + //set max verlängerungen + int verlangerung = m.getAusleizeit(); + if(m.getClass().getName().substring(20).equals("Buch") && verlangerung<(4*4))verlangerung+=4; + if(m.getClass().getName().substring(20).equals("Viedeospiel") && verlangerung==4)verlangerung*=2; + frame.dispose(); + m.setAusleizeit(verlangerung); + onmedienclick(m); + }); + + if(m.getClass().getName().substring(20).equals("Buch"))panel.add(Verlängern); + if(m.getClass().getName().substring(20).equals("Viedeospiel"))panel.add(Verlängern); + } } @@ -470,15 +488,12 @@ public class framecreater implements ActionListener { LocalDate datethen=k.getAusgeliehen().get(m); //set max verlängerungen - int verlangerung = m.getAusleizeit(); - if(m.getClass().getName().substring(20).equals("Buch"))verlangerung*=4; - if(m.getClass().getName().substring(20).equals("Viedeospiel"))verlangerung*=2; + int verlangerung = m.getAusleizeit()*7; //wochen berechnen - int weeksapart = ((int) ChronoUnit.DAYS.between(datethen,datenow))/7; + int weeksapart = ((int) ChronoUnit.DAYS.between(datethen,datenow)); if(weeksapart>verlangerung){ weeksapart-=verlangerung; - weeksapart*=7; int schulden=0; if(weeksapart<7){ schulden=weeksapart; diff --git a/src/main/java/org/example/objekts/Medien.java b/src/main/java/org/example/objekts/Medien.java index 79ed615..159afe3 100644 --- a/src/main/java/org/example/objekts/Medien.java +++ b/src/main/java/org/example/objekts/Medien.java @@ -23,6 +23,9 @@ public abstract class Medien { this.ausgeliehen = ausgeliehen; } + public void setAusleizeit(int ausleizeit) { + this.ausleizeit = ausleizeit; + } } class Buch extends Medien{ @@ -33,6 +36,7 @@ class Buch extends Medien{ private int verofentlichung; private int nummber; private int ausgeliehen; + private int ausleizeit; public Buch(String autor, String titel, String beschreibung, int verofentlichung){ @@ -42,6 +46,7 @@ class Buch extends Medien{ this.verofentlichung=verofentlichung; this.nummber=Bibiliotek.medienliste.size()+1; //test it this.ausgeliehen=-1; + this.ausleizeit=4; } @Override @@ -81,7 +86,11 @@ class Buch extends Medien{ @Override public int getAusleizeit() { - return 4; + return ausleizeit; + } + @Override + public void setAusleizeit(int ausleizeit) { + this.ausleizeit = ausleizeit; } } class DVD extends Medien{ @@ -103,6 +112,11 @@ class DVD extends Medien{ this.ausgeliehen=-1; } + @Override + public void setAusleizeit(int ausleizeit) { + super.setAusleizeit(ausleizeit); + } + @Override public void setAusgeliehen(int ausgeliehen) { this.ausgeliehen = ausgeliehen; @@ -167,6 +181,11 @@ class CD extends Medien{ this.ausgeliehen = ausgeliehen; } + @Override + public void setAusleizeit(int ausleizeit) { + super.setAusleizeit(ausleizeit); + } + @Override public String getAutor() { return autor; @@ -221,6 +240,11 @@ class Brettspiel extends Medien{ this.ausgeliehen=-1; } + @Override + public void setAusleizeit(int ausleizeit) { + super.setAusleizeit(ausleizeit); + } + @Override public void setAusgeliehen(int ausgeliehen) { this.ausgeliehen = ausgeliehen; @@ -270,6 +294,7 @@ class Viedeospiel extends Medien{ private int verofentlichung; private int nummber; private int ausgeliehen; + private int ausleizeit; public Viedeospiel(String autor, String titel, String beschreibung, int verofentlichung){ @@ -279,13 +304,20 @@ class Viedeospiel extends Medien{ this.verofentlichung=verofentlichung; this.nummber=Bibiliotek.medienliste.size()+1; //test it this.ausgeliehen=-1; + this.ausleizeit=4; } + @Override public void setAusgeliehen(int ausgeliehen) { this.ausgeliehen = ausgeliehen; } + @Override + public void setAusleizeit(int ausleizeit) { + this.ausleizeit = ausleizeit; + } + @Override public String getAutor() { return autor; @@ -318,6 +350,6 @@ class Viedeospiel extends Medien{ @Override public int getAusleizeit() { - return 4; + return ausleizeit; } } diff --git a/target/classes/org/example/framework/framecreater.class b/target/classes/org/example/framework/framecreater.class index 4eb138e..c65b3a2 100644 Binary files a/target/classes/org/example/framework/framecreater.class and b/target/classes/org/example/framework/framecreater.class differ diff --git a/target/classes/org/example/objekts/Brettspiel.class b/target/classes/org/example/objekts/Brettspiel.class index 87975d4..33be4bc 100644 Binary files a/target/classes/org/example/objekts/Brettspiel.class and b/target/classes/org/example/objekts/Brettspiel.class differ diff --git a/target/classes/org/example/objekts/Buch.class b/target/classes/org/example/objekts/Buch.class index 6598512..5e1d240 100644 Binary files a/target/classes/org/example/objekts/Buch.class and b/target/classes/org/example/objekts/Buch.class differ diff --git a/target/classes/org/example/objekts/CD.class b/target/classes/org/example/objekts/CD.class index b7b55e3..d5521f1 100644 Binary files a/target/classes/org/example/objekts/CD.class and b/target/classes/org/example/objekts/CD.class differ diff --git a/target/classes/org/example/objekts/DVD.class b/target/classes/org/example/objekts/DVD.class index 46a682f..75f7304 100644 Binary files a/target/classes/org/example/objekts/DVD.class and b/target/classes/org/example/objekts/DVD.class differ diff --git a/target/classes/org/example/objekts/Medien.class b/target/classes/org/example/objekts/Medien.class index 7a24987..3ee8c5c 100644 Binary files a/target/classes/org/example/objekts/Medien.class and b/target/classes/org/example/objekts/Medien.class differ diff --git a/target/classes/org/example/objekts/Viedeospiel.class b/target/classes/org/example/objekts/Viedeospiel.class index 05dc83a..c68e80e 100644 Binary files a/target/classes/org/example/objekts/Viedeospiel.class and b/target/classes/org/example/objekts/Viedeospiel.class differ