package guiBib; import domainBib.*; 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) { SwingUtilities.invokeLater(BibliothekGUI::new); } public BibliothekGUI() { Bibliothek.makeEntries(); JPanel loginPanel = new JPanel(new BorderLayout()); JLabel text1 = new JLabel("Login mit Kennnummer:"); loginPanel.add(text1, BorderLayout.NORTH); JTextField field1 = new JTextField(20); loginPanel.add(field1, BorderLayout.CENTER); 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);} }}); bp.add(b1); bp.add(b2); loginPanel.add(bp, BorderLayout.SOUTH); add(mainPanel); setVisible(true); setSize(600, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainPanel.add(loginPanel, "loginPanel"); cl.show(mainPanel, "loginPanel"); } public 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 -> userOwedMenu()); 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 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 userOwedMenu() { } public static void openMainMenu(Kunde k) { JPanel mediumPanel = new JPanel(new GridLayout(10, 1, 10, 10)); JLabel text1 = new JLabel("Ihre Kennnnummer: " + k.getKennnummer()); mediumPanel.add(text1); JButton b1 = new JButton("Bücher"); b1.addActionListener(e -> bookMenu()); JButton b2 = new JButton("DVDs"); b2.addActionListener(e -> dvdMenu()); JButton b3 = new JButton("CDs"); b3.addActionListener(e -> cdMenu()); JButton b4 = new JButton("Brettspiele"); b4.addActionListener(e -> bsMenu()); JButton b5 = new JButton("Videospiele"); b5.addActionListener(e -> vsMenu()); JButton b6 = new JButton("Aushleihe"); 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("Ausloggen"); b9.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); mainPanel.add(mediumPanel, "mediumPanel"); cl.show(mainPanel, "mediumPanel"); } private static void ausleihenMenü(Kunde k) { JPanel ausleihMenü = new JPanel(new BorderLayout()); JLabel text1 = new JLabel("Zu ausleihende Kennnummer des Mediums eingeben:"); JTextField inputField = new JTextField(20); ausleihMenü.add(text1, BorderLayout.NORTH); ausleihMenü.add(inputField, BorderLayout.CENTER); JPanel buttonGrid = new JPanel(new GridLayout(2, 1, 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(inputField.getText()); Bibliothek.ausleihe(kennnummer, k); cl.show(mainPanel, "mediumPanel"); }); buttonGrid.add(b1); buttonGrid.add(b2); ausleihMenü.add(buttonGrid, BorderLayout.SOUTH); mainPanel.add(ausleihMenü, "Ausleihen"); cl.show(mainPanel, "Ausleihen"); } private static void rückgabeMenü(Kunde k) { JPanel rückgabeMenü = new JPanel(new BorderLayout()); JLabel text1 = new JLabel("Kennnummer des Mediums zur Rückgabe eingeben:"); JTextField inputField = new JTextField(20); rückgabeMenü.add(text1, BorderLayout.NORTH); rückgabeMenü.add(inputField, BorderLayout.CENTER); JPanel buttonGrid = new JPanel(new GridLayout(2, 1, 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(inputField.getText()); Bibliothek.rückgabe(kennnummer, k); myBooks(k); }); buttonGrid.add(b1); buttonGrid.add(b2); rückgabeMenü.add(buttonGrid, BorderLayout.SOUTH); mainPanel.add(rückgabeMenü, "Rückgabe"); cl.show(mainPanel, "Rückgabe"); } private static void bookMenu() { int i = Bibliothek.bücherLänge(); JPanel buchMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); ArrayList jlabelList = Bibliothek.buchAuflisten(); for(JLabel j: jlabelList) { buchMenü.add(j); } JButton b1 = new JButton("OK"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); buchMenü.add(b1, BorderLayout.SOUTH); mainPanel.add(buchMenü, "Bücher"); cl.show(mainPanel, "Bücher"); } private static void dvdMenu() { int i = Bibliothek.dvdLänge(); JPanel dvdMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); ArrayList jlabelList = Bibliothek.dvdAuflisten(); for(JLabel j: jlabelList) { dvdMenü.add(j); } JButton b1 = new JButton("OK"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); dvdMenü.add(b1, BorderLayout.SOUTH); mainPanel.add(dvdMenü, "DVDs"); cl.show(mainPanel, "DVDs"); } private static void cdMenu() { int i = Bibliothek.cdLänge(); JPanel cdMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); ArrayList jlabelList = Bibliothek.cdAuflisten(); for(JLabel j: jlabelList) { cdMenü.add(j); } JButton b1 = new JButton("OK"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); cdMenü.add(b1, BorderLayout.SOUTH); mainPanel.add(cdMenü, "CDs"); cl.show(mainPanel, "CDs"); } private static void bsMenu() { int i = Bibliothek.bsLänge(); JPanel bsMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); ArrayList jlabelList = Bibliothek.bsAuflisten(); for(JLabel j: jlabelList) { bsMenü.add(j); } JButton b1 = new JButton("OK"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); bsMenü.add(b1, BorderLayout.SOUTH); mainPanel.add(bsMenü, "Brettspiele"); cl.show(mainPanel, "Brettspiele"); } private static void vsMenu() { int i = Bibliothek.vsLänge(); JPanel vsMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); ArrayList jlabelList = Bibliothek.vsAuflisten(); for(JLabel j: jlabelList) { vsMenü.add(j); } JButton b1 = new JButton("OK"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); vsMenü.add(b1, BorderLayout.SOUTH); mainPanel.add(vsMenü, "Videospiele"); cl.show(mainPanel, "Videospiele"); } private 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 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) { } }