From 00a96494e65e5959e6ea3236f916bd451450fa9f Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Sun, 16 Jun 2024 21:29:47 +0200 Subject: [PATCH 1/7] icons fix --- .DS_Store | Bin 0 -> 6148 bytes src/.DS_Store | Bin 0 -> 6148 bytes src/main/.DS_Store | Bin 0 -> 6148 bytes src/main/java/de/hs_mannheim/ui/Main.java | 7 ++++--- src/main/resources/.DS_Store | Bin 0 -> 6148 bytes src/main/resources/auto.png | Bin 7659 -> 0 bytes src/main/resources/bike.png | Bin 0 -> 11913 bytes src/main/resources/car.png | Bin 0 -> 9665 bytes src/main/resources/fahrrad.png | Bin 4499 -> 0 bytes src/main/resources/lupe.png | Bin 5948 -> 0 bytes src/main/resources/magnifier.png | Bin 0 -> 12333 bytes 11 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 src/.DS_Store create mode 100644 src/main/.DS_Store create mode 100644 src/main/resources/.DS_Store delete mode 100644 src/main/resources/auto.png create mode 100644 src/main/resources/bike.png create mode 100644 src/main/resources/car.png delete mode 100644 src/main/resources/fahrrad.png delete mode 100644 src/main/resources/lupe.png create mode 100644 src/main/resources/magnifier.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3771e149e976ea9b1da9a0a40572d7bcb9ea943d GIT binary patch literal 6148 zcmeHKO;6iE5S=9{aX^)F04W!wm3ob+`4AG~Vgej`t*iFXR>39_SQu{o6R8fX1n*M=tGHN9r9)t*kb{N0Y+^LJ()Io;p( zJ92ktZ#HXs>z_U!eC=JPSDCuiU6H^Frsbo>XSjo5d%g}wS*o&gcsP5R3W~tRISr_& z@*y@5f5}=U_noj(>FFPC(7uxeXTW~(-s*zCr+YoefMek88Q}FnLKy>#r9r)PV9-YZ zU>$BPu=%HfYox`%VrdW&h%lutPS3Z+fXftNj89i#nK==5ceaXX>fyM;7u8L0t)D=mjD0& literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6d1564ca39878e54485c59d12be32de477c5ac37 GIT binary patch literal 6148 zcmeHKy-ve05I(noCPGLZK?B*YR*8CVH|0Z>V31rZ@eO-hHVQf7D9ns=M3X=CJM#b~e1ayS2GJ96I*$%G&Nx>o&Pd<)fxv;D4!P(clQ4 zurglHL(okVnO>uf{4L0#0~zE~d^}^{M?SF0!VEA2%)p;yz?_Zt!k_$l{%B@^8Td{H z=zMTd34McwMs;*xp;7=udPXY2x_bH}x@17~4Hg>Ff+BP%q7D@%#SkWQ5IP+DedAwf z)Zrl1%s7sjS(pq(n8ZW4${mESkxOQP8JJ|CteaK3{|~;-|0jdE#SAb5|B3-&HG^gY zmt^kNnZ?mv>!Mzwl8|4aaU6mbbrqv8UBxw2C1`i4g6JD8G@=EC9|DR7E|`HIW#ApQ CrC@;o literal 0 HcmV?d00001 diff --git a/src/main/.DS_Store b/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e02cf694af7f33b416bb6e2ff7b0a069a28145fe GIT binary patch literal 6148 zcmeHKO-sW-5S?wSCKRCug&qT5i$+@t;w4r+cr~I2m726gqcK~WejG|6XZE5HgY zfdaHYIOv3)!AzstIPPIa|Lij?P*K{T7{!#$_76C>W@t7{}64Tt-)h?G6Qqp218bwxIDvK*_)bEAXcZ Fd;%+*XA}Sc literal 0 HcmV?d00001 diff --git a/src/main/java/de/hs_mannheim/ui/Main.java b/src/main/java/de/hs_mannheim/ui/Main.java index b5f695b..6f2b2d5 100644 --- a/src/main/java/de/hs_mannheim/ui/Main.java +++ b/src/main/java/de/hs_mannheim/ui/Main.java @@ -14,6 +14,7 @@ public class Main extends JFrame { public static void main(String[] args) { Main main = new Main("35a75437476f12302f72e55d368485db"); } + private Application facade; private JFrame jframe; @@ -524,7 +525,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("/magnifier.png", 20, 20); searchConfirmButton.setIcon(icon); searchConfirmButton.setText(" Suche"); searchConfirmButton.setIconTextGap(3); @@ -654,7 +655,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("/car.png", 20, 20); randDestinationsCarButton.setIcon(icon); randDestinationsCarButton.setText("Kurztrip"); randDestinationsCarButton.setIconTextGap(3); @@ -759,7 +760,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("/bike.png", 20, 20); randDestinationsBikeButton.setIcon(icon); randDestinationsBikeButton.setText("Kurztrip"); randDestinationsBikeButton.setIconTextGap(3); diff --git a/src/main/resources/.DS_Store b/src/main/resources/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3a2b8cc0e799bfb9f131fb395cbc223e3b4ee749 GIT binary patch literal 6148 zcmeHKF;2rk5S%p;7+FXuq4NtOQBlyCC=}E@0GxybBnw-HP*Az&D}0a&X75hHiQ^Ul z+Ku++yq?MV#+J_qK*p>2DKG>OGZmvlHakMkYjz?Em3^YP{}`ddBbHZ1IqR^k@EaY_ zdlw_e3ePCfx_{H6obsGL7#GaZrwjIg1PdzeQS+B$-lKXa^Sq^sQE-$Bcf0v=LjGBc zpO9PgnihDVvQPC!Rr}hGIK~s%HEwuiIcJq~ycugR`c!_;N`=sw&i_vx9g=yp)*LVgHXYdWheKWe zFZ=iZn<6_h2h4$g<$w$(*OM`)6xPyS={OTHo4heZT+qtTpq#&-2{(_1yRMT=%o)j8fS#Jc8bC!O_j_TxA5G9FLKU-@k5)_d!`#L4#@jmVqXV2PT%w?sh(~ zS51NXFP^gp>-p=7r0q{P;4kN2%eL6TIYQYFscSw1J)VBdopvI%UG2>?U=F6=iZ6jJ;z=e8U^_(&6 zrxuv!mBHI~;n zd`iB*s8>-qCp^p+Dt=Vl_=4|^o&__sd>n?Z5_5G8)1Zr24f3A2gxkA?(Pq}`qQd*Z zdzLKdF)j%y(ykAg3tZ$G&HwH7w&7u@6v}?C=6-EVef?MVwca7|1nr>T)2lAN2UQnJ z2i4_BwjxlO3^fXk=?SQXGXg-_@$l&ChX+uohX5Ab6Y!?{6A>S38xe3ijfgm)K}M4U zi~t|H`QaeI{;>5v>fu9FZ5l#fPeeDI00J-o76l&8@beEQgcA{KxCHQhbsB|$ubHq8 z5fP4LTeuN32!P|%aB66zNjNju%h2zJJ%KOn#n5#hsP1rSiEu&^+-Fm*L% zkT(jWt*wnhV^LTv60|@DNBFZS;Yj~rg;j{}7{)*_HHaR-qBH&BtC$o|W(bRjK!EG; zKjUKrkjX#c{eyq70P=wfrv#udYG@RLf%?@Wm}L?Qg8T^RKY9f31B(=82Lv-if~bH= zDB#ah_!WXi{plYN66Cj*4vmTe`~U`M8Vv4=`P-Ie7G&F>9;+01(-{G4ULe_jvt-e| z{vzvdv8}GGrSoebp!-kUzghp8`@N^DL3B`+6u)1iT7{y4P?~sc(925$sewo1 zkvI(ijr62}P!tRmuc-y#vFd>K8WfF6Fl7cYDBy9@85C~-72xl^wy;V#!NAsnh`_3$ z|C+J&qp-X{2e1a{{xoJ-@Lx;&=nTM~MOoz&qlLkv(b`%#O-+otw&pMX4nR;asKr%O z3|dWHbIpDAUv;iWxZNHaNX~RZcYyd_m5bc`d(A^ zK;ZY$_n{wst(f5OwXz^ksNYivri22twKzen?@Lr4ioZ7i-XA{%`{z9UKZwB#ln@R} z1CUrvJg6s{1`X+n^+F>xG}JKws05H%ufL-QGrd@0lpw&s8{`q>3KZxXS8(MYN44wk z_F+E2>N$XvAy;+!lQK;N>PNDu)f?l_Y;{rpix1s3gI}%~(C_;kcy)m{A?oK<_=B(2 zOXt7%`Ed^a#T`KCe>eF@{QgVVzjXa02L6%pzv}vzu7AY9KQjJTUH@-%iTu?}0si1W zpfIpivU)t*4z^hwTdRF0D=RDCzI_8n0s;aF2?G}EjfxVNtxw(vtOkQ4|va&J`hjR@pSr0}a9ANGg z%)=wParMi~lX+1JoLtAUAe*ck7ZQPJsiiDGZ3R0=X$xb6ec?~v9~7qM5TM!7u!!wN zW-!(8eaM=xD=QzAMl7Lc6%35M!fGo7o6Wp-Bxj&_%Zf#3A#4t@c{}Bdty=R}#%uUl zlrl-85g8J2!oxe{nYa8!on_hcHIF-Vd}ZV}kENdKxz(bR6ayui?M4Y+Ie(MJBX)zC zMY=QOJP#S07C3hjz3Y==bA2y{)1`N8T1eIiQYp~9KX7xDu#SME5|qFgZ#bo=Yee1% z**gZ!5ilH=F&u}5ZlDbGpgW^p%enr++fH0~4>g>>YSypK$!C8Ig|KxdVGX+tzijOF zM(n<1q&jWkx!xJqQl#&^$s}DDxo|J4-9NXZsr(4NvTT+JYv63Ub$d!-GPlBw2`zl)}+Z4=z0YrV{{S5mCJ{9EBu&36So?hLdi2Sx4lHsO; z+kN!H^5>c|hC~|A9^!ufimWH5EE_!26-!!xE3UT_TeM60NIV=a)GPwC?1H4vK zejUl!Jc?SFSlRow?9HfZ(lL~roZLzr_9gK0emHi~xjU`uYH_NO-WbG`yy!b089sSdkJ4v-Q-lw zE|a{{*Sn+edcVA^@=Sqxo3KeAFIQ~Y<7o)b+?k-akuat;Sw@V>neX$RWUPRM4qucH`vPz^BZ`Qa%D6vi1qJ7r3VFk%pxoct^ z(|{WuapjS3AD-sf{%Csmz!UuXOXs6bl*5j;7S9E7c@Hub4hm1>vRur&Q|xLFXIi#9AJMm&R^(6)g{kD#q-B|)L_fulVVu}}Mo#D{#_B0)A_vO7)CJ@!|VB2w$1&1-YY|NkajK{&Dr|A!_ zf40%}t7P;%#87pgo&6Hudh?7_zU7wOq-W`}rW>LST^H&0N^wlANYk#4Cug@hSGN{% zPhv(c!Os>@P*E5<@;@sqNQrNWeW9}D5=ZQwo;?xUl)e55+aqEZ~Q|rZ6M=8n? zp>OS$Bz6x^7UaXNO#P8M-*61aZ}z@`d1a=p*g4mz6sKqS*RO{~*wXzR`jF0mjuhqf zqfO}<8Bi_d)4@|8F2fC@Iy&=f*2B}csu-I)569T^Uben>CI@n>ECntD^a*Jx<$m?u zu=&%#Y2&y+!`zpdq2`@?Y*ZuPKIO~wR6FeK$Y%+cc|3=koeXiHPxnhTQwt=|$rZ`# zI7GG%#+#-A(tAFdcW=P84Cco6vy7Zfl6#l1bc#*PNG9JoxU1H^i5M3V!;dj?e`ut$ z4PV-ls=sMo@ZWi%nyWP*YR;rvXK8ok$E2KmdQCJaG7F`DrVR!#FMS*=13%L7jQ^`;4 zCj1NUz)14>Pse^Q7--rp-n3I(zF?l4CZa|dA$B(2@tIo~*x&lD``e6fkmJk4Q!o*7 zz0YKVRxrhCPSeC1nP96thPkl(^}_^iY;-(+qQ*gyq@s$LyziT;G+8<65h`8ZwH#WT z)t5W-vd*S!`hZE*RsfbnO6*nND&9)3@yC9-_Az7Cw8}5ZW%tVF5%V-tyh)Tr6!KD0 znzh~RE3xeGQ`a49WOHVno+h{O2}Y(T7t`H@R8+1m9H_UJ++?q_O$6%fdSSG8W?hh&XH+%25&>{vR$a$nu^G>vlWWX_7jUe z=iky>a~FMOo3*Qv!jV#i>;G8xpqTRK(nZdjF!6QkCq%1H>~s+B)$2WiOnObC=dpKN zSFQ})j*GM|Y`buEw*^Ep`KtZUOVnV~Y@qvLnGc%qq#tm3!%VI$EhNTDTsQK8@=~PTo zNz0%XJNtsih5%d2@q{cNvSjd?Qs=7I3S6;MsgJJ2_3TJB?i_|$L$S*p3dh2S8GLQC zc`%H{b=QMaZ_jlloTe&r*%C9PeibJj*O?Z$^zp|}XzPWqVV;|K>7U$x&aLw$%<@J= zt}Q8Jq71I)b~f}?$jqz3JO?GG9+)Aa-Yqc2$&xc%UiQxPVq5|-0x8I;n)CSFDW5Vz zmvFYsemfBNRrpY_JR+r^Tc*7&CnTznGjh>ro*3t6*q+V4a{WR1!F<$}POGa5r-=z& z&on38`)6`*D!$oHRO)-kpQzw=*GpD%en^n_qcZ{Ke{%NKvEGN74LC9RK$RurtB`wv zZA{#|Gd#52(aq;jd0*JY{U`YB%G`uUV(h$6_RuhqcvSA~9Qj1kaqE|t=Up8R%$E+(%?{^r`au?TrOsJddAIB(23r_&qn@M(hQw7QaKm!hfT zrE0V5&qa$ELFombaI(e_hKX`~HP?B7o6Y~_=Cn!-bf+$v1Vu!2)H@uOw!E6wD&@Pg zIgy^8M@X#68QKUFzzOx~}3 z!}}5Zu4ME6zEZziPIIyE4e!t8e7)Q}mq)%ZdaLNr6L)u=A~DE*wYv05z7dhYTAiHQ z&Zt=IuIbt13obKf7a|X0VQ*%hqMOAROQuDE_$l)Pm&NB@b|+MuRraeE<|W84Kg*ew zH7mf(JNt0Q5{&i8IqlCkaIy#Ui((=7yJqAbS@z(cq!l=Ai^sIfUl5bqY|##Lh6Rv0FfcA8eDIAt80roAnzt}Nu*m3h#2(7>^=vd_4;pd8{if5%QJq_;NnOrFgk7|S>sJpsa zJ{mZC*avnKGc8?|po_gW_O)tqns$=%O0F4*Jwgld4?mYA5$DI}2FhgoUOcAb7>V~0 zM+&jG;_(W=rMcjkK$}Mkc6ak@zYdlcL=>OWxa#33ryp1HvO)|(JOwR1)Ya$xAi~|% z?2hz9w7?~&V$zl+XLbHe=t`3|sZW{yxXoMUa^?s5%`z-22#;M2hIAfsGC~^4@8v^Y0i%%AIQ-WSd0ja5RR7R4_?5 ztQKOvF{+uq-09|r3LRvV#sn0jGR0)!2yKHgwb=?yA#!U+#i34j(-36R`^tmlF!K286$;FS+;W zTSd@x{5{`(r{|o6Gfyky%l+QM=6*CbkzeFg%K7JY%OiEc#)-$m#M-#n(Bt_30FGjj A5dZ)H diff --git a/src/main/resources/bike.png b/src/main/resources/bike.png new file mode 100644 index 0000000000000000000000000000000000000000..a6363b520856aaf62d71456bed18c38593c7b535 GIT binary patch literal 11913 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/car.png b/src/main/resources/car.png new file mode 100644 index 0000000000000000000000000000000000000000..4e51a93d72163e992bea6ac5263408e2981ea116 GIT binary patch literal 9665 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
    C>leeV3HdmmI0M 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 F{u|gNO85W( diff --git a/src/main/resources/magnifier.png b/src/main/resources/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..d798cb7ba49e7c9c393666b0221792b054ec580b GIT binary patch literal 12333 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 Date: Sun, 16 Jun 2024 21:38:24 +0200 Subject: [PATCH 2/7] change_user_password method now needs to take a new password otherwise will return false --- .DS_Store | Bin 6148 -> 0 bytes src/.DS_Store | Bin 6148 -> 0 bytes src/main/.DS_Store | Bin 6148 -> 0 bytes src/main/java/de/hs_mannheim/domain/System.java | 3 +++ src/main/resources/.DS_Store | Bin 6148 -> 0 bytes 5 files changed, 3 insertions(+) delete mode 100644 .DS_Store delete mode 100644 src/.DS_Store delete mode 100644 src/main/.DS_Store delete mode 100644 src/main/resources/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 3771e149e976ea9b1da9a0a40572d7bcb9ea943d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO;6iE5S=9{aX^)F04W!wm3ob+`4AG~Vgej`t*iFXR>39_SQu{o6R8fX1n*M=tGHN9r9)t*kb{N0Y+^LJ()Io;p( zJ92ktZ#HXs>z_U!eC=JPSDCuiU6H^Frsbo>XSjo5d%g}wS*o&gcsP5R3W~tRISr_& z@*y@5f5}=U_noj(>FFPC(7uxeXTW~(-s*zCr+YoefMek88Q}FnLKy>#r9r)PV9-YZ zU>$BPu=%HfYox`%VrdW&h%lutPS3Z+fXftNj89i#nK==5ceaXX>fyM;7u8L0t)D=mjD0& diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index 6d1564ca39878e54485c59d12be32de477c5ac37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKy-ve05I(noCPGLZK?B*YR*8CVH|0Z>V31rZ@eO-hHVQf7D9ns=M3X=CJM#b~e1ayS2GJ96I*$%G&Nx>o&Pd<)fxv;D4!P(clQ4 zurglHL(okVnO>uf{4L0#0~zE~d^}^{M?SF0!VEA2%)p;yz?_Zt!k_$l{%B@^8Td{H z=zMTd34McwMs;*xp;7=udPXY2x_bH}x@17~4Hg>Ff+BP%q7D@%#SkWQ5IP+DedAwf z)Zrl1%s7sjS(pq(n8ZW4${mESkxOQP8JJ|CteaK3{|~;-|0jdE#SAb5|B3-&HG^gY zmt^kNnZ?mv>!Mzwl8|4aaU6mbbrqv8UBxw2C1`i4g6JD8G@=EC9|DR7E|`HIW#ApQ CrC@;o diff --git a/src/main/.DS_Store b/src/main/.DS_Store deleted file mode 100644 index e02cf694af7f33b416bb6e2ff7b0a069a28145fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-sW-5S?wSCKRCug&qT5i$+@t;w4r+cr~I2m726gqcK~WejG|6XZE5HgY zfdaHYIOv3)!AzstIPPIa|Lij?P*K{T7{!#$_76C>W@t7{}64Tt-)h?G6Qqp218bwxIDvK*_)bEAXcZ Fd;%+*XA}Sc diff --git a/src/main/java/de/hs_mannheim/domain/System.java b/src/main/java/de/hs_mannheim/domain/System.java index 83d6686..1bb68a8 100644 --- a/src/main/java/de/hs_mannheim/domain/System.java +++ b/src/main/java/de/hs_mannheim/domain/System.java @@ -225,6 +225,9 @@ public class System { if (!new_password.equals(new_password_authentication)) return false; + if(old_password.equals(new_password)) + return false; + for (int i = 0; i < this.all_user.size(); i++) if (this.all_user.get(i).getUsername().equals(current_user.getUsername())) this.all_user.remove(i); diff --git a/src/main/resources/.DS_Store b/src/main/resources/.DS_Store deleted file mode 100644 index 3a2b8cc0e799bfb9f131fb395cbc223e3b4ee749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF;2rk5S%p;7+FXuq4NtOQBlyCC=}E@0GxybBnw-HP*Az&D}0a&X75hHiQ^Ul z+Ku++yq?MV#+J_qK*p>2DKG>OGZmvlHakMkYjz?Em3^YP{}`ddBbHZ1IqR^k@EaY_ zdlw_e3ePCfx_{H6obsGL7#GaZrwjIg1PdzeQS+B$-lKXa^Sq^sQE-$Bcf0v=LjGBc zpO9PgnihDVvQPC!Rr}hGIK~s%HEwuiIcJq~ycugR`c!_;N`=sw&i_vx9g=yp)*LVgHXYdWheKWe zFZ=iZn<6_h2h4$g<$w$(*OM`)6xP Date: Sun, 16 Jun 2024 21:42:41 +0200 Subject: [PATCH 3/7] search method comparison logic fixed --- src/main/java/de/hs_mannheim/domain/System.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/hs_mannheim/domain/System.java b/src/main/java/de/hs_mannheim/domain/System.java index 1bb68a8..9118362 100644 --- a/src/main/java/de/hs_mannheim/domain/System.java +++ b/src/main/java/de/hs_mannheim/domain/System.java @@ -279,7 +279,8 @@ public class System { String line; while ((line = reader.readLine()) != null && zip_set.size() < 200) { line = line.replace("\"", ""); - if (line.split(";")[0].contains(hometown_or_zip) || line.split(";")[1].contains(hometown_or_zip)) + if (line.split(";")[0].toUpperCase().startsWith(hometown_or_zip.toUpperCase()) + || line.split(";")[1].toUpperCase().startsWith(hometown_or_zip.toUpperCase())) zip_set.add(line); } } catch (Exception e) { From e0cd0c376f8c71d8f69b195b3ea77e3179b423af Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Sun, 16 Jun 2024 21:53:05 +0200 Subject: [PATCH 4/7] current_weather and weather_forecast method fix for zips under length of 5 --- .../java/de/hs_mannheim/domain/System.java | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/hs_mannheim/domain/System.java b/src/main/java/de/hs_mannheim/domain/System.java index 9118362..eea4db5 100644 --- a/src/main/java/de/hs_mannheim/domain/System.java +++ b/src/main/java/de/hs_mannheim/domain/System.java @@ -347,13 +347,24 @@ public class System { try { HttpClient http_client = HttpClient.newHttpClient(); - - HttpRequest get_request = HttpRequest.newBuilder() + HttpRequest get_request; + + if(current_user.getZip().length()<5){ + get_request = HttpRequest.newBuilder() + .uri(new URI("https://api.openweathermap.org/data/2.5/weather?q=" + current_user.getHometown() + + ",de&appid=" + api_key + "&units=metric&lang=de")) + .GET() + .build(); + } + + else{ + get_request = HttpRequest.newBuilder() .uri(new URI("https://api.openweathermap.org/data/2.5/weather?zip=" + current_user.getZip() + ",de&appid=" + api_key + "&units=metric&lang=de")) .GET() .build(); - + } + HttpResponse get_response = http_client.send(get_request, BodyHandlers.ofString()); JSONObject json = new JSONObject(get_response.body()); @@ -413,13 +424,23 @@ public class System { try { HttpClient http_client = HttpClient.newHttpClient(); - - HttpRequest get_request = HttpRequest.newBuilder() + HttpRequest get_request; + + if(destination_zip.length()<5){ + get_request = HttpRequest.newBuilder() + .uri(new URI("https://api.openweathermap.org/data/2.5/forecast?q=" + search(destination_zip).get(0).split(";")[1] + + ",de&appid=" + api_key + "&units=metric&lang=de")) + .GET() + .build(); + } + else{ + get_request = HttpRequest.newBuilder() .uri(new URI("https://api.openweathermap.org/data/2.5/forecast?zip=" + destination_zip + ",de&appid=" + api_key + "&units=metric&lang=de")) .GET() .build(); - + } + HttpResponse get_response = http_client.send(get_request, BodyHandlers.ofString()); JSONObject json = new JSONObject(get_response.body()); From 5215d9b4f7d7266b564ed9a80754ba35309a2bc3 Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Sun, 16 Jun 2024 22:55:02 +0200 Subject: [PATCH 5/7] Some gui displayed text changes --- src/main/java/de/hs_mannheim/ui/Main.java | 130 +++++++++++----------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/src/main/java/de/hs_mannheim/ui/Main.java b/src/main/java/de/hs_mannheim/ui/Main.java index 6f2b2d5..9927681 100644 --- a/src/main/java/de/hs_mannheim/ui/Main.java +++ b/src/main/java/de/hs_mannheim/ui/Main.java @@ -48,7 +48,7 @@ public class Main extends JFrame { private JPanel registerCarCO2; private JPanel registerBikeSpeed; private JButton registerConfirmButton; - private JButton registerZurückButton; + private JButton registerBackButton; private JLabel menuLabel; private JPanel menu; @@ -133,7 +133,7 @@ public class Main extends JFrame { registerCarCO2Create(); registerBikeSpeedCreate(); registerConfirmButtonCreate(); - registerZurückButtonCreate(); + registerBackButtonCreate(); registerScreen.add(registerLabel); registerScreen.add(registerName); registerScreen.add(registerPassword); @@ -145,10 +145,10 @@ public class Main extends JFrame { registerScreen.add(registerCarCO2); registerScreen.add(registerBikeSpeed); registerScreen.add(registerConfirmButton); - registerScreen.add(registerZurückButton); + registerScreen.add(registerBackButton); menu = new JPanel(null); - menuLabel = new JLabel("Gugl Maps"); + menuLabel = new JLabel("Travel-Buddy-App"); menuLabel.setFont(new Font("Arial", Font.PLAIN, 24)); searchPLZ_ORTCreate(); searchConfirmButtonCreate(); @@ -236,9 +236,9 @@ public class Main extends JFrame { String[] details = facade.getDetails(); JLabel jlName = new JLabel("Nutzername:"); JLabel jlNameText = new JLabel(details[0]); - JLabel jlWohnort = new JLabel("Zieladresse:"); - JLabel jlWohnortText = new JLabel(details[2] + "," + details[1]); - JLabel jlWetter = new JLabel("Wettervorhersage:"); + JLabel jlWohnort = new JLabel("Adresse:"); + JLabel jlWohnortText = new JLabel(details[1] + ", " + details[2]); + JLabel jlWetter = new JLabel("Aktuelles Wetter:"); JLabel jlWetterText = new JLabel(facade.current_weather()); jl.setBounds(90,0, 60,60); jlName.setBounds(60,30, 200,60); @@ -279,7 +279,7 @@ public class Main extends JFrame { private void loginButtonCreate() { - loginButton = new JButton("Login"); + loginButton = new JButton("Einloggen"); loginButton.setPreferredSize(new Dimension(150, 50)); loginButton.setFocusable(false); loginButton.addActionListener(new ActionListener() { @@ -293,7 +293,7 @@ public class Main extends JFrame { } private void registerButtonCreate() { - registerButton = new JButton("Register"); + registerButton = new JButton("Registrieren"); registerButton.setPreferredSize(new Dimension(150, 50)); registerButton.setFocusable(false); registerButton.addActionListener(new ActionListener() { @@ -307,7 +307,7 @@ public class Main extends JFrame { private void loginNameCreate() { loginName = new JPanel(); - JLabel jl = new JLabel("Name"); + JLabel jl = new JLabel("Nutzername"); JTextField tf = new JTextField(10); tf.setName("loginNameText"); loginName.add(jl); @@ -324,7 +324,7 @@ public class Main extends JFrame { } private void loginConfirmButtonCreate() { - loginConfirmButton = new JButton("Confirm"); + loginConfirmButton = new JButton("Bestätigen"); loginConfirmButton.setPreferredSize(new Dimension(80, 20)); loginConfirmButton.setFocusable(false); loginConfirmButton.addActionListener(new ActionListener() { @@ -353,7 +353,7 @@ public class Main extends JFrame { } private void loginZurückButtonCreate() { - loginBackButton = new JButton("Back"); + loginBackButton = new JButton("Zurück"); loginBackButton.setPreferredSize(new Dimension(80, 20)); loginBackButton.setFocusable(false); loginBackButton.addActionListener(new ActionListener() { @@ -367,7 +367,7 @@ public class Main extends JFrame { private void registerNameCreate() { registerName = new JPanel(); - JLabel jl = new JLabel(" Name"); + JLabel jl = new JLabel(" Nutzername"); JTextField tf = new JTextField(10); tf.setName("registerNameText"); registerName.add(jl); @@ -385,7 +385,7 @@ public class Main extends JFrame { private void registerPasswordTwoCreate() { registerPasswordTwo = new JPanel(); - JLabel jl = new JLabel(" Passwort best."); + JLabel jl = new JLabel(" Passwort bestätigen"); JTextField tf = new JTextField(10); tf.setName("registerPasswordTwoText"); registerPasswordTwo.add(jl); @@ -394,7 +394,7 @@ public class Main extends JFrame { private void registerOrtCreate() { registerOrt = new JPanel(); - JLabel jl = new JLabel(" Ort"); + JLabel jl = new JLabel(" Heimatort"); JTextField tf = new JTextField(10); tf.setName("registerOrtText"); registerOrt.add(jl); @@ -403,7 +403,7 @@ public class Main extends JFrame { private void registerPLZCreate() { registerPLZ = new JPanel(); - JLabel jl = new JLabel(" PLZ"); + JLabel jl = new JLabel(" Postleitzahl"); JTextField tf = new JTextField(10); tf.setName("registerPLZText"); registerPLZ.add(jl); @@ -421,7 +421,7 @@ public class Main extends JFrame { private void registerCarSpeedCreate() { registerCarSpeed = new JPanel(); - JLabel jl = new JLabel(" Auto km/h"); + JLabel jl = new JLabel(" Auto Durchschnittsgeschwindigkeit in km/h"); JTextField tf = new JTextField(10); tf.setName("registerCarSpeedText"); registerCarSpeed.add(jl); @@ -430,7 +430,7 @@ public class Main extends JFrame { private void registerCarCO2Create() { registerCarCO2 = new JPanel(); - JLabel jl = new JLabel("Verbrauch/100km"); + JLabel jl = new JLabel("Kraftstoffverbrauch in l/100km"); JTextField tf = new JTextField(10); tf.setName("registerCarCO2Text"); registerCarCO2.add(jl); @@ -439,7 +439,7 @@ public class Main extends JFrame { private void registerBikeSpeedCreate() { registerBikeSpeed = new JPanel(); - JLabel jl = new JLabel(" Bike km/h"); + JLabel jl = new JLabel(" Fahrrad Durchschnittsgeschwindigkeit in km/h"); JTextField tf = new JTextField(10); tf.setName("registerBikeSpeedText"); registerBikeSpeed.add(jl); @@ -448,7 +448,7 @@ public class Main extends JFrame { private void registerConfirmButtonCreate() { registerConfirmButton = new JButton(); - registerConfirmButton = new JButton("Confirm"); + registerConfirmButton = new JButton("Bestätigen"); registerConfirmButton.setPreferredSize(new Dimension(80, 20)); registerConfirmButton.setFocusable(false); registerConfirmButton.addActionListener(new ActionListener() { @@ -498,11 +498,11 @@ public class Main extends JFrame { }); } - private void registerZurückButtonCreate() { - registerZurückButton = new JButton("Back"); - registerZurückButton.setPreferredSize(new Dimension(80, 20)); - registerZurückButton.setFocusable(false); - registerZurückButton.addActionListener(new ActionListener() { + private void registerBackButtonCreate() { + registerBackButton = new JButton("Zurück"); + registerBackButton.setPreferredSize(new Dimension(80, 20)); + registerBackButton.setFocusable(false); + registerBackButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "1"); @@ -513,7 +513,7 @@ public class Main extends JFrame { private void searchPLZ_ORTCreate() { searchPLZ_ORT = new JPanel(); - JLabel jl = new JLabel("Plz oder Ort"); + JLabel jl = new JLabel("Postleitzahl oder Ort"); JTextField tf = new JTextField(28); tf.setName("ortSuche"); searchPLZ_ORT.add(jl); @@ -540,8 +540,8 @@ public class Main extends JFrame { for (String s : orte) { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; - String address = ortUndPLZ[1] + "," + plz + " " + facade.distance(plz); - JButton jb = new JButton(address); + String address = plz + ", " + ortUndPLZ[1]; + JButton jb = new JButton(address + ": " + facade.distance(plz)); jb.setPreferredSize(new Dimension(290, 40)); jb.addActionListener(new ActionListener() { @Override @@ -563,14 +563,14 @@ public class Main extends JFrame { JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")){ - jlAutoDauerText.setText("---"); - } - if(details[5].equals("")){ - jlAutoVerbrauchText.setText("---"); + if(details[4].equals("")&&details[5].equals("")){ + jlReisedauerUndKraftstoffverbrauch.setText(""); + jlAutoDauerText.setText(""); + jlAutoVerbrauchText.setText(""); } if(details[6].equals("")){ - jlReisedauerMitFahrradText.setText("---"); + jlReisedauerMitFahrrad.setText(""); + jlReisedauerMitFahrradText.setText(""); } jlAddress.setBounds(4, 0, 300, 20); jlAddressText.setBounds(4, 12, 300, 20); @@ -669,8 +669,8 @@ public class Main extends JFrame { for (String s : orte) { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; - String address = ortUndPLZ[1] + "," + plz + " " + facade.distance(plz); - JButton jb = new JButton(address); + String address = plz + ", " + ortUndPLZ[1]; + JButton jb = new JButton(address + ": " + facade.distance(plz)); jb.setPreferredSize(new Dimension(290, 40)); jb.addActionListener(new ActionListener() { @Override @@ -679,7 +679,7 @@ public class Main extends JFrame { JPanel jp = new JPanel(); jp.setLayout(null); String[] details = facade.destination_details(plz); - JLabel jlAddress = new JLabel("Zieladresse:"); + JLabel jlAddress = new JLabel("Adresse:"); JLabel jlAddressText = new JLabel(address); JLabel jlWettervorhersage = new JLabel("Wettervorhersage:"); JLabel jlWettervorhersageTextOne = new JLabel(details[0]); @@ -687,19 +687,19 @@ public class Main extends JFrame { JLabel jlWettervorhersageTextThree = new JLabel(details[2]); JLabel jlEntfernung = new JLabel("Entfernung:"); JLabel jlEntfernungText = new JLabel(details[3]); - JLabel jlReisedauerUndKraftstoffverbrauch = new JLabel("Reisedauer und Kraftstoffverbrauch Auto:"); + JLabel jlReisedauerUndKraftstoffverbrauch = new JLabel("Reisedauer und Kraftstoffverbrauch mit Auto:"); JLabel jlAutoDauerText = new JLabel(details[4]); JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")){ - jlAutoDauerText.setText("---"); - } - if(details[5].equals("")){ - jlAutoVerbrauchText.setText("---"); + if(details[4].equals("")&&details[5].equals("")){ + jlReisedauerUndKraftstoffverbrauch.setText(""); + jlAutoDauerText.setText(""); + jlAutoVerbrauchText.setText(""); } if(details[6].equals("")){ - jlReisedauerMitFahrradText.setText("---"); + jlReisedauerMitFahrrad.setText(""); + jlReisedauerMitFahrradText.setText(""); } jlAddress.setBounds(4, 0, 300, 20); jlAddressText.setBounds(4, 12, 300, 20); @@ -774,8 +774,8 @@ public class Main extends JFrame { for (String s : orte) { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; - String address = ortUndPLZ[1] + "," + plz + " " + facade.distance(plz); - JButton jb = new JButton(address); + String address = plz + ", " + ortUndPLZ[1]; + JButton jb = new JButton(address + ": " + facade.distance(plz)); jb.setPreferredSize(new Dimension(290, 40)); jb.addActionListener(new ActionListener() { @Override @@ -797,14 +797,14 @@ public class Main extends JFrame { JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")){ - jlAutoDauerText.setText("---"); - } - if(details[5].equals("")){ - jlAutoVerbrauchText.setText("---"); + if(details[4].equals("")&&details[5].equals("")){ + jlReisedauerUndKraftstoffverbrauch.setText(""); + jlAutoDauerText.setText(""); + jlAutoVerbrauchText.setText(""); } if(details[6].equals("")){ - jlReisedauerMitFahrradText.setText("---"); + jlReisedauerMitFahrrad.setText(""); + jlReisedauerMitFahrradText.setText(""); } jlAddress.setBounds(4, 0, 300, 20); jlAddressText.setBounds(4, 12, 300, 20); @@ -861,7 +861,7 @@ public class Main extends JFrame { } private void changeDetailsButtonCreate() { - changeDetailsButton = new JButton("Daten ändern"); + changeDetailsButton = new JButton("Nutzerdaten ändern"); changeDetailsButton.setPreferredSize(new Dimension(150, 50)); changeDetailsButton.setFocusable(false); changeDetailsButton.addActionListener(new ActionListener() { @@ -902,7 +902,7 @@ public class Main extends JFrame { public void changeNameCreate(){ changeName = new JPanel(); - JLabel jl = new JLabel(" Name"); + JLabel jl = new JLabel(" Nutzername"); JTextField tf = new JTextField(10); tf.setName("changeNameText"); changeName.add(jl); @@ -911,7 +911,7 @@ public class Main extends JFrame { public void changeOrtCreate(){ changeOrt = new JPanel(); - JLabel jl = new JLabel(" Ort"); + JLabel jl = new JLabel(" Heimatort"); JTextField tf = new JTextField(10); tf.setName("changeOrtText"); changeOrt.add(jl); @@ -920,7 +920,7 @@ public class Main extends JFrame { public void changePLZCreate(){ changePLZ = new JPanel(); - JLabel jl = new JLabel(" PLZ"); + JLabel jl = new JLabel(" Postleitzahl"); JTextField tf = new JTextField(10); tf.setName("changePLZText"); changePLZ.add(jl); @@ -938,7 +938,7 @@ public class Main extends JFrame { public void changeCarCO2Create(){ changeCarCO2 = new JPanel(); - JLabel jl = new JLabel(" Auto CO2"); + JLabel jl = new JLabel(" Kraftstoffverbrauch Auto in l/100km "); JTextField tf = new JTextField(10); tf.setName("changeCarCO2Text"); changeCarCO2.add(jl); @@ -947,7 +947,7 @@ public class Main extends JFrame { public void changeCarSpeedCreate(){ changeCarSpeed = new JPanel(); - JLabel jl = new JLabel(" Auto Geschw."); + JLabel jl = new JLabel(" Auto Durchschnittseschwindigkeit in km/h"); JTextField tf = new JTextField(10); tf.setName("changeCarSpeedText"); changeCarSpeed.add(jl); @@ -956,7 +956,7 @@ public class Main extends JFrame { public void changeBikeSpeedCreate(){ changeBikeSpeed = new JPanel(); - JLabel jl = new JLabel(" Fahrrad Geschw."); + JLabel jl = new JLabel(" Fahrrad Durchschnittseschwindigkeit in km/h"); JTextField tf = new JTextField(10); tf.setName("changeBikeSpeedText"); changeBikeSpeed.add(jl); @@ -964,7 +964,7 @@ public class Main extends JFrame { } public void changeConfirmButtonCreate(){ - changeConfirmButton = new JButton("Confirm"); + changeConfirmButton = new JButton("Bestätigen"); changeConfirmButton.setSize(80, 20); changeConfirmButton.setFocusable(false); changeConfirmButton.addActionListener(new ActionListener() { @@ -1024,7 +1024,7 @@ public class Main extends JFrame { public void changePasswordOldPasswordCreate(){ changePasswordOldPassword = new JPanel(); - JLabel jl = new JLabel(" Altes Passwort"); + JLabel jl = new JLabel(" Aktuelles Passwort"); JTextField tf = new JTextField(10); tf.setName("changePasswordOldPasswordText"); changePasswordOldPassword.add(jl); @@ -1033,7 +1033,7 @@ public class Main extends JFrame { public void changePasswordNewPasswordCreate(){ changePasswordNewPassword = new JPanel(); - JLabel jl = new JLabel(" Neue Passowrt"); + JLabel jl = new JLabel(" Neues Passwort"); JTextField tf = new JTextField(10); tf.setName("changePasswordNewPasswordText"); changePasswordNewPassword.add(jl); @@ -1042,7 +1042,7 @@ public class Main extends JFrame { public void changePasswordConfirmNewPasswordCreate(){ changePasswordConfirmNewPassword = new JPanel(); - JLabel jl = new JLabel("Best. neues Passwort"); + JLabel jl = new JLabel("Neues Passwort bestätigen"); JTextField tf = new JTextField(10); tf.setName("changePasswordConfirmNewPasswordText"); changePasswordConfirmNewPassword.add(jl); @@ -1063,7 +1063,7 @@ public class Main extends JFrame { } public void changePasswordConfirmButtonCreate(){ - changePasswordConfirmButton = new JButton("Confirm"); + changePasswordConfirmButton = new JButton("Bestätigen"); changePasswordConfirmButton.setSize(80, 20); changePasswordConfirmButton.setFocusable(false); changePasswordConfirmButton.addActionListener(new ActionListener() { @@ -1090,7 +1090,7 @@ public class Main extends JFrame { } private void logOutButtonCreate() { - logOutButton = new JButton("Logout"); + logOutButton = new JButton("Ausloggen"); logOutButton.setPreferredSize(new Dimension(150, 50)); logOutButton.setFocusable(false); logOutButton.addActionListener(new ActionListener() { From 10fb4ac11c26ae1f2f72479c3d899b573fb737d8 Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Sun, 16 Jun 2024 23:07:27 +0200 Subject: [PATCH 6/7] Minor changes --- src/main/java/de/hs_mannheim/ui/Main.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/hs_mannheim/ui/Main.java b/src/main/java/de/hs_mannheim/ui/Main.java index 9927681..769bba0 100644 --- a/src/main/java/de/hs_mannheim/ui/Main.java +++ b/src/main/java/de/hs_mannheim/ui/Main.java @@ -12,7 +12,7 @@ import java.util.ArrayList; public class Main extends JFrame { public static void main(String[] args) { - Main main = new Main("35a75437476f12302f72e55d368485db"); + new Main("35a75437476f12302f72e55d368485db"); } private Application facade; @@ -194,17 +194,16 @@ public class Main extends JFrame { changeDetailsLabel = new JLabel("Daten ändern"); changeDetailsLabel.setFont(new Font("Arial", Font.PLAIN, 24)); changeNameCreate(); - checkChangePasswordCreate(); changeOrtCreate(); changePLZCreate(); changeCarNameCreate(); changeCarSpeedCreate(); changeCarCO2Create(); changeBikeSpeedCreate(); + checkChangePasswordCreate(); changeConfirmButtonCreate(); changeBackButtonCreate(); changeDetails.add(changeDetailsLabel); - changeDetails.add(checkChangePassword); changeDetails.add(changeName); changeDetails.add(changeOrt); changeDetails.add(changePLZ); @@ -212,6 +211,7 @@ public class Main extends JFrame { changeDetails.add(changeCarCO2); changeDetails.add(changeCarSpeed); changeDetails.add(changeBikeSpeed); + changeDetails.add(checkChangePassword); changeDetails.add(changeBackButton); changeDetails.add(changeConfirmButton); @@ -893,7 +893,7 @@ public class Main extends JFrame { public void checkChangePasswordCreate(){ checkChangePassword = new JPanel(); - JLabel jl = new JLabel("Passwort bestätigen"); + JLabel jl = new JLabel("Passwortbestätigung"); JTextField tf = new JTextField(10); tf.setName("checkChangePasswordText"); checkChangePassword.add(jl); From c6a209e27ef9e619bf82001593a61c2a603047dc Mon Sep 17 00:00:00 2001 From: Selim Eser <2211482@stud.hs-mannheim.de> Date: Tue, 18 Jun 2024 07:14:12 +0200 Subject: [PATCH 7/7] fancy gui --- src/main/java/de/hs_mannheim/ui/Main.java | 778 +++++++++++++++------- 1 file changed, 534 insertions(+), 244 deletions(-) diff --git a/src/main/java/de/hs_mannheim/ui/Main.java b/src/main/java/de/hs_mannheim/ui/Main.java index 769bba0..1cd6447 100644 --- a/src/main/java/de/hs_mannheim/ui/Main.java +++ b/src/main/java/de/hs_mannheim/ui/Main.java @@ -56,11 +56,11 @@ public class Main extends JFrame { private JButton searchConfirmButton; private JButton randDestinationsCarButton; private JButton randDestinationsBikeButton; - private JPanel profile; + private JPanel profile = new JPanel(); private JButton changePasswordButton; private JButton changeDetailsButton; private JButton logOutButton; - private JScrollPane jsp; + private JScrollPane jsp = new JScrollPane(); private JPanel destinationButtons = new JPanel(); private JPanel changePassword; @@ -84,6 +84,12 @@ public class Main extends JFrame { private JButton changeConfirmButton; private JButton changeBackButton; + private GridBagLayout gbl5 = new GridBagLayout(); + private GridBagConstraints gbc5 = new GridBagConstraints(); + private JPanel leftSide = new JPanel(); + private JPanel rightSide = new JPanel(); + + public Main(String api_key) { SwingUtilities.invokeLater(() -> { this.facade = new Application(api_key); @@ -98,29 +104,65 @@ public class Main extends JFrame { panelLayout.setLayout(cardLayout); jframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE); - logRegScreen = new JPanel(new FlowLayout()); - mainMenuLabel = new JLabel(" Hauptmenü "); + GridBagLayout gbl1 = new GridBagLayout(); + GridBagConstraints gbc1 = new GridBagConstraints(); + logRegScreen = new JPanel(gbl1); + mainMenuLabel = new JLabel("Hauptmenü"); mainMenuLabel.setFont(new Font("Arial", Font.PLAIN, 24)); loginButtonCreate(); registerButtonCreate(); - logRegScreen.add(mainMenuLabel); - logRegScreen.add(loginButton, BorderLayout.WEST); - logRegScreen.add(registerButton, BorderLayout.EAST); + gbc1.gridx = 0; + gbc1.gridy = 0; + gbc1.ipady = 40; + logRegScreen.add(mainMenuLabel,gbc1); + JPanel p1 = new JPanel(new GridLayout(1,2,20,0)); + p1.add(loginButton, gbc1); + p1.add(registerButton, gbc1); + gbc1.gridx = 0; + gbc1.gridy = 1; + gbc1.ipadx = -10; + gbc1.ipady = 5; + gbc1.insets = new Insets(10,0,20,0); + logRegScreen.add(p1,gbc1); - loginScreen = new JPanel(new FlowLayout()); - loginLabel = new JLabel(" Einloggen "); + GridBagLayout gbl2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + loginScreen = new JPanel(); + loginScreen.setLayout(gbl2); + gbl2.setConstraints(loginScreen, gbc2); + loginLabel = new JLabel("Einloggen"); loginLabel.setFont(new Font("Arial", Font.PLAIN, 24)); loginNameCreate(); loginPasswordCreate(); - loginConfirmButtonCreate(); + loginConfirmButtonCreate(gbc5); loginZurückButtonCreate(); - loginScreen.add(loginLabel); - loginScreen.add(loginName); - loginScreen.add(loginPassword); - loginScreen.add(loginConfirmButton); - loginScreen.add(loginBackButton); + gbc2.gridx = 0; + gbc2.gridy = 0; + gbc2.ipady = 40; + gbc2.insets = new Insets(0,0,10,0); + loginScreen.add(loginLabel,gbc2); + gbc2.insets = new Insets(0,0,0,0); + JPanel cnt1 = new JPanel(new GridLayout(2, 1,0,5)); + cnt1.add(loginName); + cnt1.add(loginPassword); + gbc2.gridx = 0; + gbc2.gridy = 1; + gbc2.ipadx = 60; + gbc2.ipady = 20; + loginScreen.add(cnt1,gbc2); + gbc2.insets = new Insets(20,0,10,0); + gbc2.gridx = 0; + gbc2.gridy = 3; + gbc2.ipadx = 25; + gbc2.ipady = 20; + JPanel cnt2 = new JPanel(new GridLayout(1, 2,10,0)); + cnt2.add(loginBackButton); + cnt2.add(loginConfirmButton); + loginScreen.add(cnt2,gbc2); - registerScreen = new JPanel(new FlowLayout()); // flowLayout muss angepasst werden, um nicht scheiße auszusehen + GridBagLayout gbl3 = new GridBagLayout(); + GridBagConstraints gbc3 = new GridBagConstraints(); + registerScreen = new JPanel(gbl3); registerLabel = new JLabel("Registrieren"); registerLabel.setFont(new Font("Arial", Font.PLAIN, 24)); registerNameCreate(); @@ -132,50 +174,172 @@ public class Main extends JFrame { registerCarSpeedCreate(); registerCarCO2Create(); registerBikeSpeedCreate(); - registerConfirmButtonCreate(); + registerConfirmButtonCreate(gbc5); registerBackButtonCreate(); - registerScreen.add(registerLabel); - registerScreen.add(registerName); - registerScreen.add(registerPassword); - registerScreen.add(registerPasswordTwo); - registerScreen.add(registerOrt); - registerScreen.add(registerPLZ); - registerScreen.add(registerCarName); - registerScreen.add(registerCarSpeed); - registerScreen.add(registerCarCO2); - registerScreen.add(registerBikeSpeed); - registerScreen.add(registerConfirmButton); - registerScreen.add(registerBackButton); + gbc3.gridx = 0; + gbc3.gridy = 0; + gbc3.ipady = 40; + gbc3.insets = new Insets(0,0,10,0); + registerScreen.add(registerLabel,gbc3); + gbc3.insets = new Insets(0,0,0,0); + JPanel p2 = new JPanel(new GridLayout(9, 1,0,5)); + p2.add(registerName); + p2.add(registerPassword); + p2.add(registerPasswordTwo); + p2.add(registerPLZ); + p2.add(registerOrt); + p2.add(registerCarName); + p2.add(registerCarSpeed); + p2.add(registerCarCO2); + p2.add(registerBikeSpeed); + gbc3.gridx = 0; + gbc3.gridy = 1; + gbc3.ipadx = 5; + gbc3.ipady = 20; + registerScreen.add(p2,gbc3); + gbc3.insets = new Insets(20,0,10,0); + gbc3.gridx = 0; + gbc3.gridy = 2; + gbc3.ipadx = 25; + gbc3.ipady = 20; + JPanel p3 = new JPanel(new GridLayout(1, 2,10,0)); + p3.add(registerBackButton); + p3.add(registerConfirmButton); + registerScreen.add(p3,gbc3); - menu = new JPanel(null); + menu = new JPanel(new BorderLayout()); menuLabel = new JLabel("Travel-Buddy-App"); menuLabel.setFont(new Font("Arial", Font.PLAIN, 24)); searchPLZ_ORTCreate(); - searchConfirmButtonCreate(); - randDestinationsCarButtonCreate(); - randDestinationsBikeButtonCreate(); + searchConfirmButtonCreate(gbc5); + randDestinationsCarButtonCreate(gbc5); + randDestinationsBikeButtonCreate(gbc5); logOutButtonCreate(); changeDetailsButtonCreate(); changePasswordButtonCreate(); - menuLabel.setBounds(180, -125, 300, 300); - searchPLZ_ORT.setBounds(20, 50, 300, 100); - searchConfirmButton.setBounds(346, 70, 110, 30); - randDestinationsCarButton.setBounds(346, 105, 110, 30); - randDestinationsBikeButton.setBounds(346, 140, 110, 30); - logOutButton.setBounds(340, 430, 130, 30); - changeDetailsButton.setBounds(340, 398, 130, 30); - changePasswordButton.setBounds(340, 366, 130, 30); + //menuLabel.setBounds(140, -125, 300, 300); + //searchPLZ_ORT.setBounds(20, 50, 300, 100); + //searchConfirmButton.setBounds(346, 70, 110, 30); + //randDestinationsCarButton.setBounds(346, 105, 110, 30); + //randDestinationsBikeButton.setBounds(346, 140, 110, 30); + //logOutButton.setBounds(340, 430, 130, 30); + //changeDetailsButton.setBounds(340, 398, 130, 30); + //changePasswordButton.setBounds(340, 366, 130, 30); - menu.add(menuLabel); - menu.add(searchPLZ_ORT); - menu.add(searchConfirmButton); - menu.add(randDestinationsCarButton); - menu.add(randDestinationsBikeButton); - menu.add(logOutButton); - menu.add(changeDetailsButton); - menu.add(changePasswordButton); + leftSide.setLayout(new BoxLayout(leftSide,BoxLayout.Y_AXIS)); + rightSide.setLayout(new BoxLayout(rightSide,BoxLayout.Y_AXIS)); - changePassword = new JPanel(new FlowLayout()); + gbc5.gridheight = 1; + gbc5.ipady = 0; + gbc5.ipadx = 0; + gbc5.gridx = 0; + gbc5.gridy = 0; + + leftSide.add(Box.createRigidArea(new Dimension(0,25))); + menuLabel.setAlignmentX(Component.CENTER_ALIGNMENT); + leftSide.add(menuLabel,1); + + gbc5.gridy = 1; + searchPLZ_ORT.setAlignmentX(Component.CENTER_ALIGNMENT); + searchPLZ_ORT.setMaximumSize(new Dimension(250,55)); + searchPLZ_ORT.setPreferredSize(new Dimension(250,55)); + leftSide.add(searchPLZ_ORT,2); + + gbc5.gridy = 2; + jsp.setAlignmentX(Component.CENTER_ALIGNMENT); + jsp.setMaximumSize(new Dimension(250, 500)); + jsp.setPreferredSize(new Dimension(250, 500)); + leftSide.add(jsp,3); + + gbc5.gridheight = 1; + gbc5.ipady = 0; + gbc5.ipadx = 0; + gbc5.gridx = 1; + gbc5.gridy = 1; + + rightSide.add(Box.createRigidArea(new Dimension(0,80))); + searchConfirmButton.setAlignmentX(Component.CENTER_ALIGNMENT); + searchConfirmButton.setMaximumSize(new Dimension(140,35)); + searchConfirmButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(searchConfirmButton,1); + + gbc5.gridy = 2; + + randDestinationsCarButton.setAlignmentX(Component.CENTER_ALIGNMENT); + randDestinationsCarButton.setMaximumSize(new Dimension(140,35)); + randDestinationsCarButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(randDestinationsCarButton,2); + + gbc5.gridy = 3; + + randDestinationsBikeButton.setAlignmentX(Component.CENTER_ALIGNMENT); + randDestinationsBikeButton.setMaximumSize(new Dimension(140,35)); + randDestinationsBikeButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(randDestinationsBikeButton,3); + + gbc5.gridy = 4; + + rightSide.add(Box.createRigidArea(new Dimension(0,230))); + profile.setAlignmentX(Component.CENTER_ALIGNMENT); + rightSide.add(profile,5); + + gbc5.gridy = 5; + + changeDetailsButton.setAlignmentX(Component.CENTER_ALIGNMENT); + changeDetailsButton.setMaximumSize(new Dimension(140,35)); + changeDetailsButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(changeDetailsButton,6); + + gbc5.gridy = 6; + + changePasswordButton.setAlignmentX(Component.CENTER_ALIGNMENT); + changePasswordButton.setMaximumSize(new Dimension(140,35)); + changePasswordButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(changePasswordButton,7); + + gbc5.gridy = 7; + + logOutButton.setAlignmentX(Component.CENTER_ALIGNMENT); + logOutButton.setMaximumSize(new Dimension(140,35)); + logOutButton.setPreferredSize(new Dimension(140,35)); + rightSide.add(logOutButton,8); + + menu.add(leftSide,BorderLayout.WEST); + menu.add(rightSide,BorderLayout.EAST); + + /*p4 = new JPanel(new GridLayout(4,1)); + p4.add(menuLabel); + p4.add(searchPLZ_ORT); + p4.add(new JLabel()); + //menu.add(menuLabel,gbc5); + gbc5.ipady = 20; + gbc5.ipadx = 20; + gbc5.gridy = 1; + gbc5.insets = new Insets(0, 0, 10, 20); + menu.add(p4,gbc5); + //menu.add(searchPLZ_ORT,gbc5); + gbc5.gridx = 2; + gbc5.gridy = 1; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(searchConfirmButton,gbc5); + gbc5.gridy = 2; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(randDestinationsCarButton,gbc5); + gbc5.gridy = 3; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(randDestinationsBikeButton,gbc5); + gbc5.gridy = 7; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(logOutButton,gbc5); + gbc5.gridy = 5; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(changeDetailsButton,gbc5); + gbc5.gridy = 6; + gbc5.insets = new Insets(0, 10, 0, 0); + menu.add(changePasswordButton,gbc5); + gbc5.insets = new Insets(0, 0, 0, 0); + */ + changePassword = new JPanel(gbl5); changePasswordLabel = new JLabel("Password ändern"); changePasswordLabel.setFont(new Font("Arial", Font.PLAIN, 24)); changePasswordOldPasswordCreate(); @@ -183,15 +347,44 @@ public class Main extends JFrame { changePasswordConfirmNewPasswordCreate(); changePasswordBackButtonCreate(); changePasswordConfirmButtonCreate(); - changePassword.add(changePasswordLabel); + + gbc5.gridheight = 1; + gbc5.gridx = 0; + gbc5.gridy = 0; + gbc5.ipady = 40; + gbc5.insets = new Insets(0,0,10,0); + changePassword.add(changePasswordLabel,gbc5); + gbc5.insets = new Insets(0,0,0,0); + JPanel p7 = new JPanel(new GridLayout(3, 1,0,5)); + p7.add(changePasswordOldPassword); + p7.add(changePasswordNewPassword); + p7.add(changePasswordConfirmNewPassword); + gbc5.gridx = 0; + gbc5.gridy = 1; + gbc5.ipadx = 5; + gbc5.ipady = 20; + changePassword.add(p7,gbc5); + gbc5.insets = new Insets(20,0,10,0); + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.ipadx = 25; + gbc5.ipady = 20; + JPanel p8 = new JPanel(new GridLayout(1, 2,10,0)); + p8.add(changePasswordBackButton); + p8.add(changePasswordConfirmButton); + gbc5.ipadx = -45; + gbc5.ipady = 10; + changePassword.add(p8,gbc5); + + /*changePassword.add(changePasswordLabel); changePassword.add(changePasswordOldPassword); changePassword.add(changePasswordNewPassword); changePassword.add(changePasswordConfirmNewPassword); changePassword.add(changePasswordBackButton); - changePassword.add(changePasswordConfirmButton); + changePassword.add(changePasswordConfirmButton);*/ - changeDetails = new JPanel(new FlowLayout()); - changeDetailsLabel = new JLabel("Daten ändern"); + changeDetails = new JPanel(gbl5); + changeDetailsLabel = new JLabel("Nutzerdaten ändern"); changeDetailsLabel.setFont(new Font("Arial", Font.PLAIN, 24)); changeNameCreate(); changeOrtCreate(); @@ -201,9 +394,43 @@ public class Main extends JFrame { changeCarCO2Create(); changeBikeSpeedCreate(); checkChangePasswordCreate(); - changeConfirmButtonCreate(); + changeConfirmButtonCreate(gbc5); changeBackButtonCreate(); - changeDetails.add(changeDetailsLabel); + gbc5.gridheight = 1; + gbc5.gridx = 0; + gbc5.gridy = 0; + gbc5.ipadx = 0; + gbc5.ipady = 40; + gbc5.insets = new Insets(0,0,10,0); + changeDetails.add(changeDetailsLabel,gbc5); + gbc5.insets = new Insets(0,0,0,0); + JPanel p5 = new JPanel(new GridLayout(8, 1,0,5)); + p5.add(changeName); + p5.add(changeOrt); + p5.add(changePLZ); + p5.add(changeCarName); + p5.add(changeCarCO2); + p5.add(changeCarSpeed); + p5.add(changeBikeSpeed); + p5.add(checkChangePassword); + gbc5.gridx = 0; + gbc5.gridy = 1; + gbc5.ipadx = 5; + gbc5.ipady = 20; + changeDetails.add(p5,gbc5); + gbc5.insets = new Insets(20,0,10,0); + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.ipadx = 25; + gbc5.ipady = 20; + JPanel p6 = new JPanel(new GridLayout(1, 2,10,0)); + p6.add(changeBackButton); + p6.add(changeConfirmButton); + gbc5.ipadx = -30; + gbc5.ipady = 10; + changeDetails.add(p6,gbc5); + + /*changeDetails.add(changeDetailsLabel); changeDetails.add(changeName); changeDetails.add(changeOrt); changeDetails.add(changePLZ); @@ -213,7 +440,7 @@ public class Main extends JFrame { changeDetails.add(changeBikeSpeed); changeDetails.add(checkChangePassword); changeDetails.add(changeBackButton); - changeDetails.add(changeConfirmButton); + changeDetails.add(changeConfirmButton);*/ panelLayout.add(logRegScreen, "1"); panelLayout.add(loginScreen, "2"); @@ -224,38 +451,38 @@ public class Main extends JFrame { cardLayout.show(panelLayout, "1"); jframe.add(panelLayout); jframe.setResizable(false); - jframe.setSize(450, 160); + jframe.setSize(400, 200); jframe.setLocationRelativeTo(null); jframe.setVisible(true); } private void profileCreate() { - JPanel jp = new JPanel(null); + JPanel jp = new JPanel(); ImageIcon png = png("/profile.png", 40, 40); JLabel jl = new JLabel(png); String[] details = facade.getDetails(); - JLabel jlName = new JLabel("Nutzername:"); + jp.setToolTipText("Nutzername:
    "+details[0]+"

    Adresse:
    "+details[2] + ", " + details[1]+"

    Aktuelles Wetter:
    "+facade.current_weather()+""); + /*JLabel jlName = new JLabel("Nutzername:"); + jlName.setToolTipText(details[0]); JLabel jlNameText = new JLabel(details[0]); JLabel jlWohnort = new JLabel("Adresse:"); - JLabel jlWohnortText = new JLabel(details[1] + ", " + details[2]); + jlWohnort.setToolTipText(details[2] + ", " + details[1]); + JLabel jlWohnortText = new JLabel(details[2] + ", " + details[1]); JLabel jlWetter = new JLabel("Aktuelles Wetter:"); + jlWetter.setToolTipText(facade.current_weather()); JLabel jlWetterText = new JLabel(facade.current_weather()); - jl.setBounds(90,0, 60,60); - jlName.setBounds(60,30, 200,60); - jlNameText.setBounds(60,44, 200,60); - jlWohnort.setBounds(60,70, 200,60); - jlWohnortText.setBounds(60,84, 200,60); - jlWetter.setBounds(60,110, 200,60); - jlWetterText.setBounds(60,124, 200,60); - + */ jp.add(jl); + /*jp.add(new JLabel()); jp.add(jlName); jp.add(jlNameText); + jp.add(new JLabel()); jp.add(jlWohnort); jp.add(jlWohnortText); + jp.add(new JLabel()); jp.add(jlWetter); jp.add(jlWetterText); - + */ profile = jp; } @@ -263,8 +490,8 @@ public class Main extends JFrame { errorMessage = new JFrame(); errorMessage.setDefaultCloseOperation(DISPOSE_ON_CLOSE); JPanel jp = new JPanel(new FlowLayout()); - JLabel jl = new JLabel("Daten falsch oder unvollständig!"); - JButton jb = new JButton("OK"); + JLabel jl = new JLabel("Überprüfen sie Ihre Eingabe!"); + JButton jb = new JButton("Bestätigen"); jb.setFocusable(false); jb.addActionListener(e -> errorMessage.dispose()); @@ -286,7 +513,7 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "2"); - jframe.setSize(new Dimension(400, 150)); + jframe.setSize(new Dimension(400, 330)); } }); @@ -300,14 +527,14 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "3"); - jframe.setSize(new Dimension(260, 430)); + jframe.setSize(new Dimension(400, 728)); } }); } private void loginNameCreate() { - loginName = new JPanel(); - JLabel jl = new JLabel("Nutzername"); + loginName = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Nutzername"); JTextField tf = new JTextField(10); tf.setName("loginNameText"); loginName.add(jl); @@ -315,15 +542,15 @@ public class Main extends JFrame { } private void loginPasswordCreate() { - loginPassword = new JPanel(); - JLabel jl = new JLabel("Passwort"); + loginPassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Passwort"); JTextField tf = new JTextField(10); tf.setName("loginPasswordText"); loginPassword.add(jl); loginPassword.add(tf); } - private void loginConfirmButtonCreate() { + private void loginConfirmButtonCreate(GridBagConstraints gbc5) { loginConfirmButton = new JButton("Bestätigen"); loginConfirmButton.setPreferredSize(new Dimension(80, 20)); loginConfirmButton.setFocusable(false); @@ -334,12 +561,20 @@ public class Main extends JFrame { String passwordTXT = getTextfieldContent(loginPassword, "loginPasswordText"); if(facade.sign_in_user(nameTXT, passwordTXT)) { profileCreate(); - profile.setBounds(280, 168, 200,200); - menu.add(profile); + try { + rightSide.remove(5); + } catch (Exception err) { + // + } + profile.setMaximumSize(new Dimension(50,50)); + profile.setPreferredSize(new Dimension(50,50)); + gbc5.gridx = 1; + gbc5.gridy = 4; + rightSide.add(profile,5); + rightSide.revalidate(); menu.revalidate(); - menu.repaint(); cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } else{ errorMessageCreate(); @@ -360,14 +595,14 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "1"); - jframe.setSize(new Dimension(450, 140)); + jframe.setSize(new Dimension(400, 200)); } }); } private void registerNameCreate() { - registerName = new JPanel(); - JLabel jl = new JLabel(" Nutzername"); + registerName = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Nutzername"); JTextField tf = new JTextField(10); tf.setName("registerNameText"); registerName.add(jl); @@ -375,8 +610,8 @@ public class Main extends JFrame { } private void registerPasswordCreate() { - registerPassword = new JPanel(); - JLabel jl = new JLabel(" Passwort"); + registerPassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Passwort"); JTextField tf = new JTextField(10); tf.setName("registerPasswordText"); registerPassword.add(jl); @@ -384,8 +619,8 @@ public class Main extends JFrame { } private void registerPasswordTwoCreate() { - registerPasswordTwo = new JPanel(); - JLabel jl = new JLabel(" Passwort bestätigen"); + registerPasswordTwo = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Passwort bestätigen"); JTextField tf = new JTextField(10); tf.setName("registerPasswordTwoText"); registerPasswordTwo.add(jl); @@ -393,8 +628,8 @@ public class Main extends JFrame { } private void registerOrtCreate() { - registerOrt = new JPanel(); - JLabel jl = new JLabel(" Heimatort"); + registerOrt = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Heimatort"); JTextField tf = new JTextField(10); tf.setName("registerOrtText"); registerOrt.add(jl); @@ -402,8 +637,8 @@ public class Main extends JFrame { } private void registerPLZCreate() { - registerPLZ = new JPanel(); - JLabel jl = new JLabel(" Postleitzahl"); + registerPLZ = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Postleitzahl"); JTextField tf = new JTextField(10); tf.setName("registerPLZText"); registerPLZ.add(jl); @@ -411,8 +646,8 @@ public class Main extends JFrame { } private void registerCarNameCreate() { - registerCarName = new JPanel(); - JLabel jl = new JLabel(" Auto Name"); + registerCarName = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Auto Name"); JTextField tf = new JTextField(10); tf.setName("registerCarNameText"); registerCarName.add(jl); @@ -420,8 +655,8 @@ public class Main extends JFrame { } private void registerCarSpeedCreate() { - registerCarSpeed = new JPanel(); - JLabel jl = new JLabel(" Auto Durchschnittsgeschwindigkeit in km/h"); + registerCarSpeed = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Auto ⌀-Tempo km/h"); JTextField tf = new JTextField(10); tf.setName("registerCarSpeedText"); registerCarSpeed.add(jl); @@ -429,8 +664,8 @@ public class Main extends JFrame { } private void registerCarCO2Create() { - registerCarCO2 = new JPanel(); - JLabel jl = new JLabel("Kraftstoffverbrauch in l/100km"); + registerCarCO2 = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Kraftstoffverbrauch l/100km"); JTextField tf = new JTextField(10); tf.setName("registerCarCO2Text"); registerCarCO2.add(jl); @@ -438,15 +673,15 @@ public class Main extends JFrame { } private void registerBikeSpeedCreate() { - registerBikeSpeed = new JPanel(); - JLabel jl = new JLabel(" Fahrrad Durchschnittsgeschwindigkeit in km/h"); + registerBikeSpeed = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Fahrrad ⌀-Tempo km/h"); JTextField tf = new JTextField(10); tf.setName("registerBikeSpeedText"); registerBikeSpeed.add(jl); registerBikeSpeed.add(tf); } - private void registerConfirmButtonCreate() { + private void registerConfirmButtonCreate(GridBagConstraints gbc5) { registerConfirmButton = new JButton(); registerConfirmButton = new JButton("Bestätigen"); registerConfirmButton.setPreferredSize(new Dimension(80, 20)); @@ -466,12 +701,21 @@ public class Main extends JFrame { if(facade.sign_up_user(nameTXT, passwordTXT, passwordTXTTwo, ortTXT, plzTXT, carNameTXT, carCO2TXT, carSpeedTXT, bikeSpeedTXT)){ profileCreate(); - profile.setBounds(280, 168, 200,200); - menu.add(profile); + try { + rightSide.remove(5); + } catch (Exception err) { + // + } + profile.setMaximumSize(new Dimension(50,50)); + profile.setPreferredSize(new Dimension(50,50)); + gbc5.gridx = 1; + gbc5.gridy = 4; + rightSide.add(profile,5); + rightSide.revalidate(); menu.revalidate(); - menu.repaint(); + cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } else{ errorMessageCreate(); @@ -506,26 +750,26 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "1"); - jframe.setSize(new Dimension(450, 140)); + jframe.setSize(new Dimension(400, 200)); } }); } private void searchPLZ_ORTCreate() { - searchPLZ_ORT = new JPanel(); - JLabel jl = new JLabel("Postleitzahl oder Ort"); - JTextField tf = new JTextField(28); + searchPLZ_ORT = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Postleitzahl oder Ort"); + JTextField tf = new JTextField(20); tf.setName("ortSuche"); searchPLZ_ORT.add(jl); searchPLZ_ORT.add(tf); } - private void searchConfirmButtonCreate() { + private void searchConfirmButtonCreate(GridBagConstraints gbc5) { searchConfirmButton = new JButton(); searchConfirmButton.setPreferredSize(new Dimension(150, 80)); searchConfirmButton.setFocusable(false); - ImageIcon icon = png("/magnifier.png", 20, 20); + ImageIcon icon = png("/magnifier.png", 25, 25); searchConfirmButton.setIcon(icon); searchConfirmButton.setText(" Suche"); searchConfirmButton.setIconTextGap(3); @@ -541,8 +785,10 @@ public class Main extends JFrame { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; String address = plz + ", " + ortUndPLZ[1]; - JButton jb = new JButton(address + ": " + facade.distance(plz)); + JButton jb = new JButton(address); jb.setPreferredSize(new Dimension(290, 40)); + jb.setToolTipText(facade.distance(plz)); + jb.setHorizontalAlignment(SwingConstants.LEFT); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -563,28 +809,28 @@ public class Main extends JFrame { JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")&&details[5].equals("")){ - jlReisedauerUndKraftstoffverbrauch.setText(""); - jlAutoDauerText.setText(""); - jlAutoVerbrauchText.setText(""); + if(details[4].equals("")){ + jlAutoDauerText.setText("---"); + } + if(details[5].equals("")){ + jlAutoVerbrauchText.setText("---"); } if(details[6].equals("")){ - jlReisedauerMitFahrrad.setText(""); - jlReisedauerMitFahrradText.setText(""); + jlReisedauerMitFahrradText.setText("---"); } - jlAddress.setBounds(4, 0, 300, 20); - jlAddressText.setBounds(4, 12, 300, 20); - jlWettervorhersage.setBounds(4, 45, 300, 20); - jlWettervorhersageTextOne.setBounds(4, 57, 300, 20); - jlWettervorhersageTextTwo.setBounds(4, 69, 300, 20); - jlWettervorhersageTextThree.setBounds(4, 81, 300, 20); - jlEntfernung.setBounds(4, 108, 300, 20); - jlEntfernungText.setBounds(4, 120, 300, 20); - jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 300, 20); - jlAutoDauerText.setBounds(4, 159, 300, 20); - jlAutoVerbrauchText.setBounds(4, 171, 300, 20); - jlReisedauerMitFahrrad.setBounds(4, 198, 300, 20); - jlReisedauerMitFahrradText.setBounds(4, 210, 300, 20); + jlAddress.setBounds(4, 0, 400, 20); + jlAddressText.setBounds(4, 12, 400, 20); + jlWettervorhersage.setBounds(4, 45, 400, 20); + jlWettervorhersageTextOne.setBounds(4, 57, 400, 20); + jlWettervorhersageTextTwo.setBounds(4, 69, 400, 20); + jlWettervorhersageTextThree.setBounds(4, 81, 400, 20); + jlEntfernung.setBounds(4, 108, 400, 20); + jlEntfernungText.setBounds(4, 120, 400, 20); + jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 400, 20); + jlAutoDauerText.setBounds(4, 159, 400, 20); + jlAutoVerbrauchText.setBounds(4, 171, 400, 20); + jlReisedauerMitFahrrad.setBounds(4, 198, 400, 20); + jlReisedauerMitFahrradText.setBounds(4, 210, 400, 20); jp.add(jlAddress); jp.add(jlAddressText); jp.add(jlWettervorhersage); @@ -601,61 +847,78 @@ public class Main extends JFrame { jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); jf.add(jp); - jf.setSize(320, 270); + jf.setSize(400, 270); jf.setResizable(false); jf.setVisible(true); } }); destinationButtonsProxy.add(jb); - JLabel placeholder = new JLabel(""); - destinationButtonsProxy.add(placeholder); + //JLabel placeholder = new JLabel(""); + //destinationButtonsProxy.add(placeholder); } destinationButtons = destinationButtonsProxy; - destinationButtons.revalidate(); - destinationButtons.repaint(); try { - menu.remove(jsp); + leftSide.remove(jsp); } catch (Exception jspNotYetIncluded) { } - jsp = new JScrollPane(destinationButtons); - jsp.setBounds(40, 110, 256, 336); + jsp = new JScrollPane(destinationButtons, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + //jsp.setBounds(40, 110, 256, 336); + jsp.setMaximumSize(new Dimension(250, 450)); + jsp.setPreferredSize(new Dimension(250, 450)); jsp.revalidate(); - jsp.repaint(); - menu.add(jsp); + + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.gridheight = GridBagConstraints.RELATIVE; + //gbc5.ipady = 500; + //gbc5.ipadx = 200; + leftSide.add(jsp,3); + leftSide.revalidate(); + gbc5.ipady = 0; + gbc5.ipadx = 0; + + gbc5.gridheight = 1; menu.revalidate(); - menu.repaint(); } else { destinationButtonsProxy = new JPanel(); - JLabel jl = new JLabel("Kein Ergebnis"); - jl.setFont(new Font("Arial", Font.PLAIN, 38)); + JLabel jl = new JLabel("Ihre Suche liefert keine Treffer!"); + jl.setFont(new Font("Arial", Font.PLAIN, 14)); destinationButtonsProxy.add(jl); destinationButtons = destinationButtonsProxy; destinationButtons.revalidate(); - destinationButtons.repaint(); + try { - menu.remove(jsp); + leftSide.remove(jsp); } catch (Exception jspNotYetIncluded) { } jsp = new JScrollPane(destinationButtons); - jsp.setBounds(40, 110, 244, 336); + jsp.setMaximumSize(new Dimension(250, 450)); + jsp.setPreferredSize(new Dimension(250, 450)); jsp.revalidate(); - jsp.repaint(); - menu.add(jsp); + + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.gridheight = GridBagConstraints.RELATIVE; + + leftSide.add(jsp,3); + leftSide.revalidate(); + + gbc5.gridheight = 1; + menu.revalidate(); - menu.repaint(); } } }); } - private void randDestinationsCarButtonCreate() { //Auto Icon hinzufügen + private void randDestinationsCarButtonCreate(GridBagConstraints gbc5) { //Auto Icon hinzufügen randDestinationsCarButton = new JButton(); randDestinationsCarButton.setPreferredSize(new Dimension(150, 80)); randDestinationsCarButton.setFocusable(false); - ImageIcon icon = png("/car.png", 20, 20); + ImageIcon icon = png("/car.png", 25, 25); randDestinationsCarButton.setIcon(icon); randDestinationsCarButton.setText("Kurztrip"); randDestinationsCarButton.setIconTextGap(3); @@ -670,7 +933,9 @@ public class Main extends JFrame { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; String address = plz + ", " + ortUndPLZ[1]; - JButton jb = new JButton(address + ": " + facade.distance(plz)); + JButton jb = new JButton(address); + jb.setToolTipText(facade.distance(plz)); + jb.setHorizontalAlignment(SwingConstants.LEFT); jb.setPreferredSize(new Dimension(290, 40)); jb.addActionListener(new ActionListener() { @Override @@ -692,28 +957,28 @@ public class Main extends JFrame { JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")&&details[5].equals("")){ - jlReisedauerUndKraftstoffverbrauch.setText(""); - jlAutoDauerText.setText(""); - jlAutoVerbrauchText.setText(""); + if(details[4].equals("")){ + jlAutoDauerText.setText("---"); + } + if(details[5].equals("")){ + jlAutoVerbrauchText.setText("---"); } if(details[6].equals("")){ - jlReisedauerMitFahrrad.setText(""); - jlReisedauerMitFahrradText.setText(""); + jlReisedauerMitFahrradText.setText("---"); } - jlAddress.setBounds(4, 0, 300, 20); - jlAddressText.setBounds(4, 12, 300, 20); - jlWettervorhersage.setBounds(4, 45, 300, 20); - jlWettervorhersageTextOne.setBounds(4, 57, 300, 20); - jlWettervorhersageTextTwo.setBounds(4, 69, 300, 20); - jlWettervorhersageTextThree.setBounds(4, 81, 300, 20); - jlEntfernung.setBounds(4, 108, 300, 20); - jlEntfernungText.setBounds(4, 120, 300, 20); - jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 300, 20); - jlAutoDauerText.setBounds(4, 159, 300, 20); - jlAutoVerbrauchText.setBounds(4, 171, 300, 20); - jlReisedauerMitFahrrad.setBounds(4, 198, 300, 20); - jlReisedauerMitFahrradText.setBounds(4, 210, 300, 20); + jlAddress.setBounds(4, 0, 400, 20); + jlAddressText.setBounds(4, 12, 400, 20); + jlWettervorhersage.setBounds(4, 45, 400, 20); + jlWettervorhersageTextOne.setBounds(4, 57, 400, 20); + jlWettervorhersageTextTwo.setBounds(4, 69, 400, 20); + jlWettervorhersageTextThree.setBounds(4, 81, 400, 20); + jlEntfernung.setBounds(4, 108, 400, 20); + jlEntfernungText.setBounds(4, 120, 400, 20); + jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 400, 20); + jlAutoDauerText.setBounds(4, 159, 400, 20); + jlAutoVerbrauchText.setBounds(4, 171, 400, 20); + jlReisedauerMitFahrrad.setBounds(4, 198, 400, 20); + jlReisedauerMitFahrradText.setBounds(4, 210, 400, 20); jp.add(jlAddress); jp.add(jlAddressText); jp.add(jlWettervorhersage); @@ -730,7 +995,7 @@ public class Main extends JFrame { jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); jf.add(jp); - jf.setSize(320, 270); + jf.setSize(400, 270); jf.setResizable(false); jf.setVisible(true); } @@ -739,28 +1004,38 @@ public class Main extends JFrame { } destinationButtons = destinationButtonsProxy; destinationButtons.revalidate(); - destinationButtons.repaint(); + try { - menu.remove(jsp); + leftSide.remove(jsp); } catch (Exception jspNotYetIncluded) { } jsp = new JScrollPane(destinationButtons); - jsp.setBounds(40, 110, 244, 336); + jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jsp.setMaximumSize(new Dimension(250, 450)); + jsp.setPreferredSize(new Dimension(250, 450)); jsp.revalidate(); - jsp.repaint(); - menu.add(jsp); + + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.gridheight = GridBagConstraints.RELATIVE; + + leftSide.add(jsp,3); + leftSide.revalidate(); + gbc5.gridheight = 1; + menu.revalidate(); - menu.repaint(); + } }); } - private void randDestinationsBikeButtonCreate() { //Fahrrad Icon hinzufügen + private void randDestinationsBikeButtonCreate(GridBagConstraints gbc5) { //Fahrrad Icon hinzufügen randDestinationsBikeButton = new JButton(); randDestinationsBikeButton.setPreferredSize(new Dimension(150, 80)); randDestinationsBikeButton.setFocusable(false); - ImageIcon icon = png("/bike.png", 20, 20); + ImageIcon icon = png("/bike.png", 25, 25); randDestinationsBikeButton.setIcon(icon); randDestinationsBikeButton.setText("Kurztrip"); randDestinationsBikeButton.setIconTextGap(3); @@ -775,7 +1050,9 @@ public class Main extends JFrame { String[] ortUndPLZ = s.split(";"); String plz = ortUndPLZ[0]; String address = plz + ", " + ortUndPLZ[1]; - JButton jb = new JButton(address + ": " + facade.distance(plz)); + JButton jb = new JButton(address); + jb.setToolTipText(facade.distance(plz)); + jb.setHorizontalAlignment(SwingConstants.LEFT); jb.setPreferredSize(new Dimension(290, 40)); jb.addActionListener(new ActionListener() { @Override @@ -797,28 +1074,28 @@ public class Main extends JFrame { JLabel jlAutoVerbrauchText = new JLabel(details[5]); JLabel jlReisedauerMitFahrrad = new JLabel("Reisedauer mit Fahrrad:"); JLabel jlReisedauerMitFahrradText = new JLabel(details[6]); - if(details[4].equals("")&&details[5].equals("")){ - jlReisedauerUndKraftstoffverbrauch.setText(""); - jlAutoDauerText.setText(""); - jlAutoVerbrauchText.setText(""); + if(details[4].equals("")){ + jlAutoDauerText.setText("---"); + } + if(details[5].equals("")){ + jlAutoVerbrauchText.setText("---"); } if(details[6].equals("")){ - jlReisedauerMitFahrrad.setText(""); - jlReisedauerMitFahrradText.setText(""); + jlReisedauerMitFahrradText.setText("---"); } - jlAddress.setBounds(4, 0, 300, 20); - jlAddressText.setBounds(4, 12, 300, 20); - jlWettervorhersage.setBounds(4, 45, 300, 20); - jlWettervorhersageTextOne.setBounds(4, 57, 300, 20); - jlWettervorhersageTextTwo.setBounds(4, 69, 300, 20); - jlWettervorhersageTextThree.setBounds(4, 81, 300, 20); - jlEntfernung.setBounds(4, 108, 300, 20); - jlEntfernungText.setBounds(4, 120, 300, 20); - jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 300, 20); - jlAutoDauerText.setBounds(4, 159, 300, 20); - jlAutoVerbrauchText.setBounds(4, 171, 300, 20); - jlReisedauerMitFahrrad.setBounds(4, 198, 300, 20); - jlReisedauerMitFahrradText.setBounds(4, 210, 300, 20); + jlAddress.setBounds(4, 0, 400, 20); + jlAddressText.setBounds(4, 12, 400, 20); + jlWettervorhersage.setBounds(4, 45, 400, 20); + jlWettervorhersageTextOne.setBounds(4, 57, 400, 20); + jlWettervorhersageTextTwo.setBounds(4, 69, 400, 20); + jlWettervorhersageTextThree.setBounds(4, 81, 400, 20); + jlEntfernung.setBounds(4, 108, 400, 20); + jlEntfernungText.setBounds(4, 120, 400, 20); + jlReisedauerUndKraftstoffverbrauch.setBounds(4, 147, 400, 20); + jlAutoDauerText.setBounds(4, 159, 400, 20); + jlAutoVerbrauchText.setBounds(4, 171, 400, 20); + jlReisedauerMitFahrrad.setBounds(4, 198, 400, 20); + jlReisedauerMitFahrradText.setBounds(4, 210, 400, 20); jp.add(jlAddress); jp.add(jlAddressText); jp.add(jlWettervorhersage); @@ -835,7 +1112,7 @@ public class Main extends JFrame { jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); jf.add(jp); - jf.setSize(320, 270); + jf.setSize(400, 270); jf.setResizable(false); jf.setVisible(true); } @@ -844,18 +1121,29 @@ public class Main extends JFrame { } destinationButtons = destinationButtonsProxy; destinationButtons.revalidate(); - destinationButtons.repaint(); + try { - menu.remove(jsp); + leftSide.remove(jsp); } catch (Exception jspNotYetIncluded) { } jsp = new JScrollPane(destinationButtons); - jsp.setBounds(40, 110, 244, 336); + jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jsp.setMaximumSize(new Dimension(250, 450)); + jsp.setPreferredSize(new Dimension(250, 450)); + jsp.revalidate(); - jsp.repaint(); - menu.add(jsp); + + gbc5.gridx = 0; + gbc5.gridy = 2; + gbc5.gridheight = GridBagConstraints.RELATIVE; + + leftSide.add(jsp,3); + leftSide.revalidate(); + gbc5.gridheight = 1; + menu.revalidate(); - menu.repaint(); + } }); } @@ -868,6 +1156,7 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { String[] details = facade.getDetails(); + JTextField detailsText = findTextFieldByName(changeName, "changeNameText"); detailsText.setText(details[0]); detailsText = findTextFieldByName(changeOrt, "changeOrtText"); @@ -886,14 +1175,14 @@ public class Main extends JFrame { detailsText.setText(""); cardLayout.show(panelLayout, "5"); - jframe.setSize(new Dimension(260, 394)); + jframe.setSize(new Dimension(400, 670)); } }); } public void checkChangePasswordCreate(){ - checkChangePassword = new JPanel(); - JLabel jl = new JLabel("Passwortbestätigung"); + checkChangePassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Passwortbestätigung"); JTextField tf = new JTextField(10); tf.setName("checkChangePasswordText"); checkChangePassword.add(jl); @@ -901,8 +1190,8 @@ public class Main extends JFrame { } public void changeNameCreate(){ - changeName = new JPanel(); - JLabel jl = new JLabel(" Nutzername"); + changeName = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Nutzername"); JTextField tf = new JTextField(10); tf.setName("changeNameText"); changeName.add(jl); @@ -910,8 +1199,8 @@ public class Main extends JFrame { } public void changeOrtCreate(){ - changeOrt = new JPanel(); - JLabel jl = new JLabel(" Heimatort"); + changeOrt = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Heimatort"); JTextField tf = new JTextField(10); tf.setName("changeOrtText"); changeOrt.add(jl); @@ -919,8 +1208,8 @@ public class Main extends JFrame { } public void changePLZCreate(){ - changePLZ = new JPanel(); - JLabel jl = new JLabel(" Postleitzahl"); + changePLZ = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Postleitzahl"); JTextField tf = new JTextField(10); tf.setName("changePLZText"); changePLZ.add(jl); @@ -928,8 +1217,8 @@ public class Main extends JFrame { } public void changeCarNameCreate(){ - changeCarName = new JPanel(); - JLabel jl = new JLabel(" Auto Name"); + changeCarName = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Auto Name"); JTextField tf = new JTextField(10); tf.setName("changeCarNameText"); changeCarName.add(jl); @@ -937,8 +1226,8 @@ public class Main extends JFrame { } public void changeCarCO2Create(){ - changeCarCO2 = new JPanel(); - JLabel jl = new JLabel(" Kraftstoffverbrauch Auto in l/100km "); + changeCarCO2 = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Kraftstoffverbrauch l/100km "); JTextField tf = new JTextField(10); tf.setName("changeCarCO2Text"); changeCarCO2.add(jl); @@ -946,8 +1235,8 @@ public class Main extends JFrame { } public void changeCarSpeedCreate(){ - changeCarSpeed = new JPanel(); - JLabel jl = new JLabel(" Auto Durchschnittseschwindigkeit in km/h"); + changeCarSpeed = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Auto ⌀-Tempo km/h"); JTextField tf = new JTextField(10); tf.setName("changeCarSpeedText"); changeCarSpeed.add(jl); @@ -955,15 +1244,15 @@ public class Main extends JFrame { } public void changeBikeSpeedCreate(){ - changeBikeSpeed = new JPanel(); - JLabel jl = new JLabel(" Fahrrad Durchschnittseschwindigkeit in km/h"); + changeBikeSpeed = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Fahrrad ⌀-Tempo km/h"); JTextField tf = new JTextField(10); tf.setName("changeBikeSpeedText"); changeBikeSpeed.add(jl); changeBikeSpeed.add(tf); } - public void changeConfirmButtonCreate(){ + public void changeConfirmButtonCreate(GridBagConstraints gbc5){ changeConfirmButton = new JButton("Bestätigen"); changeConfirmButton.setSize(80, 20); changeConfirmButton.setFocusable(false); @@ -980,14 +1269,15 @@ public class Main extends JFrame { String bikeSpeedTXT = getTextfieldContent(changeBikeSpeed, "changeBikeSpeedText"); if(facade.change_user_details(nameTXT, passwordTXT, ortTXT, plzTXT, carNameTXT, carCO2TXT, carSpeedTXT, bikeSpeedTXT)){ - menu.remove(profile); + rightSide.remove(5); profileCreate(); - profile.setBounds(280, 168, 200,200); - menu.add(profile); + gbc5.gridx = 1; + gbc5.gridy = 4; + rightSide.add(profile,5); + rightSide.revalidate(); menu.revalidate(); - menu.repaint(); cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } else{ errorMessageCreate(); @@ -1004,7 +1294,7 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } }); } @@ -1017,14 +1307,14 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "6"); - jframe.setSize(new Dimension(260, 215)); + jframe.setSize(new Dimension(400, 400)); } }); } public void changePasswordOldPasswordCreate(){ - changePasswordOldPassword = new JPanel(); - JLabel jl = new JLabel(" Aktuelles Passwort"); + changePasswordOldPassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Aktuelles Passwort"); JTextField tf = new JTextField(10); tf.setName("changePasswordOldPasswordText"); changePasswordOldPassword.add(jl); @@ -1032,8 +1322,8 @@ public class Main extends JFrame { } public void changePasswordNewPasswordCreate(){ - changePasswordNewPassword = new JPanel(); - JLabel jl = new JLabel(" Neues Passwort"); + changePasswordNewPassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Neues Passwort"); JTextField tf = new JTextField(10); tf.setName("changePasswordNewPasswordText"); changePasswordNewPassword.add(jl); @@ -1041,8 +1331,8 @@ public class Main extends JFrame { } public void changePasswordConfirmNewPasswordCreate(){ - changePasswordConfirmNewPassword = new JPanel(); - JLabel jl = new JLabel("Neues Passwort bestätigen"); + changePasswordConfirmNewPassword = new JPanel(new GridLayout(2,1)); + JLabel jl = new JLabel(" Neues Passwort bestätigen"); JTextField tf = new JTextField(10); tf.setName("changePasswordConfirmNewPasswordText"); changePasswordConfirmNewPassword.add(jl); @@ -1057,7 +1347,7 @@ public class Main extends JFrame { @Override public void actionPerformed(ActionEvent e) { cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } }); } @@ -1074,7 +1364,7 @@ public class Main extends JFrame { String passwordConfirmNewTXT = getTextfieldContent(changePasswordConfirmNewPassword, "changePasswordConfirmNewPasswordText"); if(facade.change_user_password(passwordOldTXT, passwordNewTXT, passwordConfirmNewTXT)){ cardLayout.show(panelLayout, "4"); - jframe.setSize(new Dimension(500, 500)); + jframe.setSize(new Dimension(400, 600)); } else{ errorMessageCreate(); @@ -1099,7 +1389,7 @@ public class Main extends JFrame { menu.remove(profile); facade.sign_out_user(); cardLayout.show(panelLayout, "1"); - jframe.setSize(new Dimension(450, 160)); + jframe.setSize(new Dimension(400, 200)); JTextField clear = findTextFieldByName(searchPLZ_ORT, "ortSuche"); clear.setText(""); clear = findTextFieldByName(changeName, "changeNameText");