From 109489f0ad4d7ffba4590fb201f8a93f119499ae Mon Sep 17 00:00:00 2001 From: David Groys Date: Wed, 12 Jun 2024 15:12:26 +0200 Subject: [PATCH] Implemented User shown on Gugl Panel and functional registration, login and logout --- src/main/java/de/hs_mannheim/ui/Main.java | 82 +++++++++++++++------- src/main/resources/auto.png | Bin 0 -> 7659 bytes src/main/resources/fahrrad.png | Bin 0 -> 4499 bytes src/main/resources/lupe.png | Bin 0 -> 5948 bytes src/main/resources/profile.png | Bin 0 -> 1439 bytes 5 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/auto.png create mode 100644 src/main/resources/fahrrad.png create mode 100644 src/main/resources/lupe.png create mode 100644 src/main/resources/profile.png diff --git a/src/main/java/de/hs_mannheim/ui/Main.java b/src/main/java/de/hs_mannheim/ui/Main.java index da3e958..92b3003 100644 --- a/src/main/java/de/hs_mannheim/ui/Main.java +++ b/src/main/java/de/hs_mannheim/ui/Main.java @@ -136,6 +136,7 @@ public class Main extends JFrame { randDestinationsBikeButton.setBounds(346, 160, 110, 30); logOutButton.setBounds(346, 420, 110, 30); jsp.setBounds(50,50,300,400); + menu.add(menuLabel); menu.add(searchPLZ_ORT); menu.add(searchConfirmButton); @@ -143,6 +144,7 @@ public class Main extends JFrame { menu.add(randDestinationsBikeButton); menu.add(logOutButton); + panelLayout.add(logRegScreen, "1"); panelLayout.add(loginScreen, "2"); panelLayout.add(registerScreen, "3"); @@ -156,20 +158,39 @@ public class Main extends JFrame { } private void profileCreate() { - profile = new JPanel(new FlowLayout()); - ImageIcon png = png("profile.png", 30, 30); + JPanel jp = new JPanel(null); + ImageIcon png = png("/profile.png", 40, 40); JLabel jl = new JLabel(png); - String[] details = facade.getDetails(); // 6 bzw 7 - JLabel jlTXT = new JLabel("Name: " + details[0] - + "\nWohnort: " + details[1] - + "\nPlz: " + details[2] - + "\nAuto Name: " + details[3] - + "\nCO2/100km: " + details[4] - + "\nAuto km/h: " + details[5] - + "\nFahrrad km/h: " + details[6] - + "\nWetter: " + facade.current_weather()); - profile.add(jl); - profile.add(jlTXT); + String[] details = facade.getDetails(); + JLabel jlName = new JLabel("Name: " + details[0]); + JLabel jlWohnort = new JLabel("Wohnort: " + details[2]); + JLabel jlPLZ = new JLabel("Plz: " + details[3]); + JLabel jlAutoName = new JLabel("nAuto Name: " + details[4]); + JLabel jlCO2 = new JLabel("CO2/100km: " + details[5]); + JLabel jlAutoKMH = new JLabel( "Auto km/h: " + details[6]); + JLabel jlFahrradKMH = new JLabel( "Fahrrad km/h: " + details[7]); + JLabel jlWetter = new JLabel("Wetter: " + facade.current_weather()); + jl.setBounds(60,0, 60,60); + jlName.setBounds(15,30, 200,60); + jlWohnort.setBounds(15,47, 200,60); + jlPLZ.setBounds(15,64, 200,60); + jlAutoName.setBounds(15,81, 200,60); + jlCO2.setBounds(15,98, 200,60); + jlAutoKMH.setBounds(15,115, 200,60); + jlFahrradKMH.setBounds(15,132, 200,60); + jlWetter.setBounds(15,149, 200,60); + + jp.add(jl); + jp.add(jlName); + jp.add(jlWohnort); + jp.add(jlPLZ); + jp.add(jlAutoName); + jp.add(jlCO2); + jp.add(jlAutoKMH); + jp.add(jlFahrradKMH); + jp.add(jlWetter); + + profile = jp; } private void errorMessageCreate() { @@ -234,6 +255,11 @@ public class Main extends JFrame { String nameTXT = getTextfieldContent(loginName, "loginNameText"); String passwordTXT = getTextfieldContent(loginPassword, "loginPasswordText"); if(facade.sign_in_user(nameTXT, passwordTXT)) { + profileCreate(); + profile.setBounds(280, 190, 200,200); + menu.add(profile); + menu.revalidate(); + menu.repaint(); cardLayout.show(panelLayout, "4"); jframe.setSize(new Dimension(500, 500)); } @@ -261,7 +287,7 @@ public class Main extends JFrame { registerName = new JPanel(); JLabel jl = new JLabel(" Name"); JTextField tf = new JTextField(10); - tf.setName("registerPasswordText"); + tf.setName("registerNameText"); registerName.add(jl); registerName.add(tf); } @@ -339,14 +365,19 @@ public class Main extends JFrame { public void actionPerformed(ActionEvent e) { String nameTXT = getTextfieldContent(registerName, "registerNameText"); String passwordTXT = getTextfieldContent(registerPassword, "registerPasswordText"); - String ortTXT = getTextfieldContent(registerName, "registerOrtText"); - String plzTXT = getTextfieldContent(registerPassword, "registerPLZText"); - String carNameTXT = getTextfieldContent(registerName, "registerCarNameText"); - String carCO2TXT = getTextfieldContent(registerName, "registerCarCO2Text"); - String carSpeedTXT = getTextfieldContent(registerPassword, "registerCarSpeedText"); - String bikeSpeedTXT = getTextfieldContent(registerName, "registerBikeSpeedText"); + String ortTXT = getTextfieldContent(registerOrt, "registerOrtText"); + String plzTXT = getTextfieldContent(registerPLZ, "registerPLZText"); + String carNameTXT = getTextfieldContent(registerCarName, "registerCarNameText"); + String carCO2TXT = getTextfieldContent(registerCarCO2, "registerCarCO2Text"); + String carSpeedTXT = getTextfieldContent(registerCarSpeed, "registerCarSpeedText"); + String bikeSpeedTXT = getTextfieldContent(registerBikeSpeed, "registerBikeSpeedText"); if(facade.sign_up_user(nameTXT, passwordTXT, ortTXT, plzTXT, carNameTXT, carCO2TXT, carSpeedTXT, bikeSpeedTXT)){ + profileCreate(); + profile.setBounds(280, 190, 200,200); + menu.add(profile); + menu.revalidate(); + menu.repaint(); cardLayout.show(panelLayout, "4"); jframe.setSize(new Dimension(500, 500)); } @@ -384,7 +415,7 @@ public class Main extends JFrame { searchConfirmButton.setPreferredSize(new Dimension(150, 80)); searchConfirmButton.setFocusable(false); - ImageIcon icon = png("lupe.png", 20, 20); + ImageIcon icon = png("/lupe.png", 20, 20); searchConfirmButton.setIcon(icon); searchConfirmButton.setText(" Suche"); searchConfirmButton.setIconTextGap(3); @@ -427,7 +458,7 @@ public class Main extends JFrame { randDestinationsCarButton.setPreferredSize(new Dimension(150, 80)); randDestinationsCarButton.setFocusable(false); - ImageIcon icon = png("auto.png", 20, 20); + ImageIcon icon = png("/auto.png", 20, 20); randDestinationsCarButton.setIcon(icon); randDestinationsCarButton.setText("Kurztrip"); randDestinationsCarButton.setIconTextGap(3); @@ -445,7 +476,7 @@ public class Main extends JFrame { randDestinationsBikeButton.setPreferredSize(new Dimension(150, 80)); randDestinationsBikeButton.setFocusable(false); - ImageIcon icon = png("fahrrad.png", 20, 20); + ImageIcon icon = png("/fahrrad.png", 20, 20); randDestinationsBikeButton.setIcon(icon); randDestinationsBikeButton.setText("Kurztrip"); randDestinationsBikeButton.setIconTextGap(3); @@ -465,9 +496,10 @@ public class Main extends JFrame { logOutButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + menu.remove(profile); + facade.sign_out_user(); cardLayout.show(panelLayout, "1"); - jframe.setSize(new Dimension(450, 120)); - // implementiere Ausloggen im Backend + jframe.setSize(new Dimension(450, 160)); } }); } diff --git a/src/main/resources/auto.png b/src/main/resources/auto.png new file mode 100644 index 0000000000000000000000000000000000000000..9580e132929241c7e5cdae36fea879154237edcf GIT binary patch literal 7659 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 A5dZ)H literal 0 HcmV?d00001 diff --git a/src/main/resources/fahrrad.png b/src/main/resources/fahrrad.png new file mode 100644 index 0000000000000000000000000000000000000000..b9315c83de32c3a291c834958808d61fadf73a0a GIT binary patch literal 4499 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 F{u|gNO85W( literal 0 HcmV?d00001 diff --git a/src/main/resources/profile.png b/src/main/resources/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..f71fb15c2397d10abc70cdd091c3dbcf1ed3ba60 GIT binary patch literal 1439 zcmV;Q1z`G#P)gqH!Gztm|@9*yf1O%U-pFcl8kB^TO6clf7 zZ^y^S*VorkQBikycOfAm;o;%0udjc9e`siE^78U1C@4oqN2#f)mzS4^hld;-98641 zBqStST3WccxU~6!Gynhu>$BE?$q($@EX#9zws*oz30 zY?x_Qz9-0DVJ?|W2G4Ui91e%W;cz${4qJ)R)hdmA?qwJd?U(Ctr2b7KEy$Z>d`j7hmoiJ5Wt1c{?v*|y zowt)wG8eolo4CD>%cktP*IR?XrN}5*iVTxJ;j_9j7pNo}({)?|WW>GhpXBd4I+S`B zX7bTaPlrX_hksF?FyvH=QF14bb)NFgtbLOzf} zIP)!76e$_==?FmiNyUgyh>z5v6rbCQutNAwS1DEqUkze~6~dQo0aHd^A=Z3a))>1r z?$-m9v~Dm4L~BwMdy+OI0zFu57==KOx~wHSptZ9WAG{1Fg!80pQGw2yk}0l; zeP9*>yH;RtfUxDF$IDx^Fg6nlxDAC|hHkl4c$n+yk$??>I4afu384twB$?83%EqodGY+Fr{a_8T8QoY2ji=^aK>Lc z^%pG*S&uo*c#S2PJqQ>ycAN#&jqykIl`)sCvm?p=tqZA!%m&oq*HhGowp7%V%_;{ddxe!7D^!*dwaTSxXGbU!`krPNobt(`dwAb zJFs|@d3pML;DxL?baW6;fKPX5fMfigONUa>yvwvj*@P3&b@|XD1C=#S2)V}(%K@bW z`ugAf`HOU@)A;tq#5XsNtdr$x1PfrqLqwAgNq5WzM= zD>w=)JY1puZza$i&eT0Sk`BRvgce3Twzj4w=yTp)SsKln(3$i0DsWFU=k5&zUA&ci t==Y@L13|dyFb;>q;cz${4u?Y~{{W+bT^LI8+8F=<002ovPDHLkV1hrvu-^ax literal 0 HcmV?d00001