From 4e576c49efd76851686fe049e1391d3ce6faaa97 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 17 Feb 2026 17:55:07 +0100 Subject: [PATCH] Gestione errori --- build/classes/guimybank/GUIMyBank$1.class | Bin 0 -> 835 bytes build/classes/guimybank/GUIMyBank$2.class | Bin 0 -> 838 bytes build/classes/guimybank/GUIMyBank$3.class | Bin 0 -> 844 bytes build/classes/guimybank/GUIMyBank$4.class | Bin 0 -> 844 bytes build/classes/guimybank/GUIMyBank$5.class | Bin 0 -> 844 bytes build/classes/guimybank/GUIMyBank.class | Bin 8337 -> 10607 bytes build/classes/guimybank/GUIMyBank.form | 15 ++ src/guimybank/GUIMyBank.form | 15 ++ src/guimybank/GUIMyBank.java | 158 ++++++++++++++++++---- 9 files changed, 159 insertions(+), 29 deletions(-) create mode 100644 build/classes/guimybank/GUIMyBank$1.class create mode 100644 build/classes/guimybank/GUIMyBank$2.class create mode 100644 build/classes/guimybank/GUIMyBank$3.class create mode 100644 build/classes/guimybank/GUIMyBank$4.class create mode 100644 build/classes/guimybank/GUIMyBank$5.class diff --git a/build/classes/guimybank/GUIMyBank$1.class b/build/classes/guimybank/GUIMyBank$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b4bca6dfab84de923e6480b2bf2b78f1c45ee377 GIT binary patch literal 835 zcmZuvU2hUW6g>l!h3(2$X^U2Ct5|_1VxKW4mC)JV?(&1n4e6v~1*%w@`3UM2TS|R_1SYQ%r@_%>y-z!u=6H*CHUU2cGowLxyCn z-nUW4s)aQN>!>iSEMR9S>37;y6A|+qa!-m8!{&Uze`GpFu~qLgRB8)*HAkto8VQDc zm#ExmG7!NFKJckh>Z&34`#kVWJ};)s@C@sV=&E}yhC)y1Q#E?V13nQnBY~G+nVEn0 zniNw_YniQoVZ#jea}@PEeChargLVMZ8bSplEx<8 zj4ML@ScN3#97!pHw$H;*gxI2s&e3yXg@UUy zxbh(eZjeobk$r;eWY=a;+`uMfKt85qxJmI64gbDC;4M_<-23E>TDI{K*6wGl{9!du u8|YDU?qAH=OXe)Laf`_2%-aM`;WpU>s<;zpW$d69SIVf9w+WshPv0-4`MBBu literal 0 HcmV?d00001 diff --git a/build/classes/guimybank/GUIMyBank$2.class b/build/classes/guimybank/GUIMyBank$2.class new file mode 100644 index 0000000000000000000000000000000000000000..b0f099542af7f4105fb1f0a46ae4f28c9aec6fb4 GIT binary patch literal 838 zcmZuvU2hUW6g>l!h3(2mOIx&BTg3`AaZO(_CY8|IgrcSu?H)WoJi2&9 zQEitYt55x?cAo&UL5TW`MDM$aXs**uOBj` z>y5sR3RWzvI#@%MVR;TaiRyQ{twvIfMM8DJeJO?v8?zq&QR*1cR-?~QtV-eqUy!tfe26dAfU`rS9v_>^UycvSu$h#XIPs@SKDndl#YZxRl}z|ndt`R7R+EDt2p$;zHjO%TrS|A87Gz6kzSx8Uyi0)4(^&^7tA!S#iU}pdO^O$&`S&FPZ=yQm-Xm|+^39L1c0ObI y5370Iz%dnf@)vXdk~xnp+#<3W^A>?KxJ@>N8tx>g3bs*CG8Ht)+XT;%r|%a*RJtkv literal 0 HcmV?d00001 diff --git a/build/classes/guimybank/GUIMyBank$3.class b/build/classes/guimybank/GUIMyBank$3.class new file mode 100644 index 0000000000000000000000000000000000000000..5c1c76fce93014414fd01fcc88bd223b22582238 GIT binary patch literal 844 zcmZuvU2hUW6g>l!h3(2mOIx&BTg3`A5tBY*Oe&$Z2}Ki?roIi!NT)8db$1r+n}5l~ zulV2(@JAW%ENeB&CVTIlJ16JdkNNTQ+jjt6G;O4iwvchKfGk7#j8Azh($Z@^8J-DO zhYW>4yoqEW`o8K%p2x6V@5L~Wt8oHrH~vrMkwe~s?O+iO!^$|4lZzo&uUiK%4v#J# zQB>Py$m&xW*6tIaHwV$SQ9#i`$w3)Q4C}Enf2&(!DwJ;R`)(BOjrh410dYN$O6rFU z>3U;eqk2_nlP_54` z+FWIbRxlKMMAeTbLlHdZLys~`J)eXIJdoy`Br|3T3~Te~YP)TQ(vi@o{^%(W_(V{% z1YUe)n*UvET1++dGuy-5f*I^*eiWEiO&x{HHQX~prBb`f_54t(@l4CXT{H56nQ6zL zocoH}Cf!_Lg!-``lALp>ln6Q=4?_`RlQv$Ucg0F2vvZ14^p|m!{56U?NXMCCbLZqM z*zqS=%`dp}AqK9K&4Q6V#&xo*GbnCggHAv(rewHD@d7pfzC_?nR1@w!@l!h3(2mOIx&BTg3`A5g+=7F{zZ+CKOFnnm!mEmXS_fX6x=O+Bg4_ ziC^)-AK;HN-dV63Ws|-4&YhEU?#KN2`RzM^HtIGKNLolam_wSOc*@7T5ozf)9`#R! zt3!rdAl^hW5M5t&BhO>ltaf6U$JKBOYu5fxWsyPFg6&`)4#UzglB4rJSFaoU&khdH zA5c`;W=QK38CLERpfdx}w2?#JLcu{13k<8VGJmTZVl0$y?D=jK?hN>u76EbHlS=CQ z49RM(XQPBA3(F2xP-a-1!A^Yoo!;e|@5(L@U8#9YxX+~$1BSI}r~l}+jdZitV<=Z= z7HzIlEq@>w@*Se;Mx(w6p7Op&nT3w;a<9h&Y0lGR%1nV_Wfom!yU9>E6#B#;Jmvu( z32K(W^RG*cXTGAgNjK9Kp?>IxBMh-}KdLEsc_l1-q3Tk)xcO;qDd2{rOI!87FP F`vuW+ym|lt literal 0 HcmV?d00001 diff --git a/build/classes/guimybank/GUIMyBank$5.class b/build/classes/guimybank/GUIMyBank$5.class new file mode 100644 index 0000000000000000000000000000000000000000..b686be0d2b1e5c7b9da7180a1944c820cd30dff0 GIT binary patch literal 844 zcmZuvTW=CU6#fP%3)_`TOIx&Bd%+4c5nuX*F{y-B5{f2OjE}=IrBj#Lx;u;3C;yU( zxA@=>@JAWXELe@Q$)0oO%$M&wm-+GY+jjtM)NLe?w2*SJfHXt#oKJWo($Z@@8Jr7O zhYYzuypCibdcNvKp2x6T?Zz;VtI-VBto@(LB7>|2+rc6nhLuqy$Cm@HUNw%McaAR~ zQB>JyNb55hR_+s^I|tFUkwe}>!9fvA4C}Enf1?{>B9v|%`fd~+4Eco?0dYN$O6rFU z$!e`{ql6U;s}9ysW>}uXPJH^UKH=Wb?`j1}QNH=SJhH`ao z(dH`E@`r*U-zBPEG#-fH86S9*S?c;O_xe1L<~&QL%oG^b=FwI5n+%0xq0ju`Qy%cK zpk@iYcxsyeU29TIH1#vx!`y-y>=Qo%mjAGtHx39Y?({F_>=knsTi7PD8S@r_Q`jM!Km~W=Qwh7M#+edoiYpc@B!$6qE@T6KD&L{R^6^!>vr93ciq}*?QSdkKj+?gT$m{SHk0JMzVn^$ zb-wRA=gb>lKKlZI7I`}Y10fS77D_QdP;sWc&fZX;TJOeJ*Dsu(w0j)EfSGRGO&=!+ zO_;bWf-uTVL@W$c6Dn8txjh>@?fBaI1t+(*Z=B1TV6d9doapII#GQCLRmM4kEDXjF z!Jy7`e3_F>5pz795Dae%EIGF?ole9XBN&Pb6O|T*VK`SQ0wai|ob)m`<#xtMWXXgT z6PKxl4ze&pEi{k|ElxTy*IAcP{Ua?Ltonztzs*gh?e@evR}tZw7`-p&ZFZ*dkpMg=K>NufQ_YoE*sP1yz-Q`A|`EDv| z$Mj&Wg}UtEJUeaAa~IjEsGGLc%*hs}WCuI!SXZJo?w;*(rimj3RRO^)bvC5uyH2bt zf_jhgX%>#gF{C`bA?;BMqya`%pj2!g1Nb{ivT~ zp(#5Upk66h%XXfH7NwSQs%5|F3oIP32CF#O)SGmZPIH1*)0{{qsW^&Yq2S;`5uD=2 zyAtaOME%n6l(Dv1XvZSK2wKZLr`zs}rJG}klyhRQleE)rBCc$wb>gxx7PF>=r1ZYT zLI;*oaGa%NL_?jRC08G_xivb{N$!wFHES7xd|8EYDs8_xp(Iq(?I}2n6@np(vzjiq zChjRVjME6H1yaMU;_LGtxJZ%hH2$avR^be_Lv6A#p{)oEDN#C)TId4Jv)u0LnxBaF zrIevNaVIGl>yvM_6{OAZ`YP`3f z@na%L;EXU*0%PSWWg1JuSVv$_=QUBKbpH3WUO~^b!NNwIO~KkxrNYHdvOAINak>Nz z{m92tUY`3VJuxdE?QqVuunFI$hoJO=!-7Ni6JHQQo5K0rIeFg}#&-natP2X`B9f~e zPfbtW^IRf0sL+5HBolqTZT7}QUs@UOWfm^S6||Mr4mTuCKAv7|$Eo3}2@~@isS(?y zn#sn+xJp^d)x=vsavnk%%C)%8#Pt?#z>U7+t5<@_0SU@z_8t}7UxY%`O)+dm;{!UIY;;iXHOTHDBZ1Y5Ax#6uPy#v_6w`V-nd$QX!em+0{kA z)a}rrdIoh$P+nhytADxeuaj-~fztX91;+>1DBP%Dr|Nx8X&YWw>Ucvi=bNize`Ied z3f~s2?VrND)dYn8|6yVa{!uaUW5MjAOdPnBP5hKfRc7R8CuUaTjn0QjMW->P#)Nv|DUtMcK0weUOq8(Hd1B)gpCiAi_0 z8)rJqI2F*0H(WngL(%%{@$VM?1HboTo7XKkB&hM=Brm7>PYeHrPZ+ltg1t;|ST^<+ zrh*at5ucj)lZ8LyGcr@44V^0zftzaS=}m9c=cpAX{vsG%xb^+T+Zf0_^2+d6{EvzM zweUCmojHI;=>_Uof+<~yyO%3zw*3Ike)9S`_A&<$Fk}WSON}yR6+=+d8c#VYp{_~u z#O2nwHC;@GYm#nsjq9Y+?v#j>NU13UEHNd#Pm;3m#9p0s=}cs3YE5E&yOT;WC78!3 znP3(8 z+S0|-8IPS|86lXwvT5>)Rp&HpTG=$Wd0xx$ZS9MfbSzzU&a_RZb)7Sny&Pq2npca+ zNIBS)QI?FBLwvc`_odxfebQO&Y^Yysr_)Z7hY~Z&^RufAd$KRhLUZ%>Zjp(NYJnO{ z#tM&{W{;hYu2Jd#v_c%sYwV=wsiTe`U<)y|dy|N1yc}lA;g%esOj_ruMc}wOyLs%2 z$V90%rOuK`GC8mT<|X>{5q)5IyRwD4Fuyl@xs62i+)c~s(#rJ2)9#hk9TL}G1IylcMW#CXi8oiK4_z+L2~ zjV}Ofjdv#+!*VP$uSIT8XJ0BJ(`AM!jh4(*E+LRe^^3uC9gBG3K_4Ne9G;im5~n-HUFNRK zpLKI0G-aWnE+Dvgs;{?~fg>QR+ywewX|tqVc$6N%P0svZFw)!7+I&@?x;1LkV~u69 zSWYr!i6tFEQVWbH2gqY+jL14#mbENt5mXmLreJ7@%j6VOPPJsYte{>si$xZtOC)kZ zvv2G{5RIz92l;3Cf}W*ol8N9iy&^j7++N_*oLb;>@e&*|e99_Yr`CDuA^JibtD*^^lik#>d%si;>GmNnc$xyzX; zUTjcyf2JjCg<>nCQFviOP+z#YvnHhZ$_8XVws;dL&$u$VtlrnB8eU~)IPIjx5_4P2h>HyVh1fziW?->rGq8wD3D zV|)|X_X;J?vM<}>05l188LA8*@1cB4(!oyOmGXYri|2j{z_t#|*-KAqMq%;uDCG>S zsCUcicU1(YXFCHp{LVogX{MCzcCWTUQ*Na@)07pZpCtBXBXgmn3IuH$P$dm0k#qv$ zW+FC^?Dx=glo#;=&p!8v9CsOQcpIR_lQr>vg9?{2oDFKrda zE-W79F zIv42cZ7h)S{y`%!ap}fhrx5(W2fZb~daj@JX+8Luo0;5nxM_zfw_4-80@QBYp;*gu zM^6R@w!gms7q5`^`m*#b_y;FxVwv8S_~;jQdCZ5%Ikje zZ+jH63F&FGRZK)U2>j4t^iqDwxQ=#q~hy5xI{F8S`kau5$;d|6{M zk!I_3(jhFz*6xDTW?a!3iU+=31{ga}Q#w8TXpA_aLE~ zXL-%$iev_9BAH*&=T~Z<#d;uvbJ%NDoagmcRb1dzsw*yJWe+Z1PDNh23s<(OvMz&b z>gsmjrVKW-eiy6vvC0nBDj%vo89W$-P{3ScVg`@0n8YH3?d28fo>mArJhS}E z@;T*SX0Uq)_GIu9yPDZ`gzn1VRkmmQ7!E7vC%+m;EN_V_uc-FmILRl~CuEE_JkBc) z_n^v0s!sshRIYoLTK6@gp3X)p+i1v*kQ3t9|KH3?AzIE4F>%)X41Scsn;bWWp0_uH zpK0J<7K*TZu=;olzwb%PCy?tKdPPq6gh9FbAU^RV!~^k}CuE^uePG3+$3hNRiKsZR zuO{jt2i)w<_vKk+0i{zeFgrV^5VJ3Z@)-pJ_-ESEZ*opRKE=7*-1XetN1_Tx(FIJ! zBuvAxeBGT(Khur|oXS>|&$n?*=iAr}T*NoqYcUg>F$)i3HXcC}Z#kQJ_uPV4u>e0p zD}IR+=qFFYXE;Sluu3Wsl|$i59oEXxh)EOTvXIYq9Z1S)NXr`ZNiSdK`mkO$VuPHI zjdCg9;jY6uax2c2?_!hO$0xLhah^Ph^JORN&*1`jg->Cx;X-+bk6`cPV)+=C$nV+y z6qm|p9QzWN8Kt<~uyBP@i7SnfxXKvKb`3Te<8if7hiix?UtIoxHuio1=saF6jb+-rP*`-~4+{}}fhpWp%Gb37O_u!RrSTSI)!2@S_X zp;34^G!Bo1>hWl(0oy{;*`ABXLalf_v=~o>PQ#O-D7J^r#Ewu8`_^G+XcL|aU4*AY z*C7+Sk#)XRgzm@g(4%-J^f>McZO0vqw6knrxrpU-mNQCNp~wHjj8b};|85vC zS^YPwOH>iAE>%U@@By1qG2GmYLBqqF5guN4JEFq}+>T)i=^lK(dSPd7n=7*L0R2U@;#fPR4Keg@@l_Ek2^-{T(h~DtQB60dB=7c!>A>PvBELNvHV? zZ`xnPU+@!rfuG__V%dui1^AN){!EAZH!0;U`T$-&n=*{I=%b{JSE>B783y;82?UM-iyQTCMILAU4OOO$oRf1t*RUJv`raque)6vJ;SnXX>UPV7g%bzgb|*?hv$n#V!D7@l zO3q*+Um;U`y&p;`KgdK9CQ06B;D=UHB za{6|z4WL6x+x zyX0Kt16!?_vL^?J0zN?E;I+@1KSBAk()-O{^LPRLKK zAc0^ORK{b_KyKqvDYe@XBgM=m$kAGxH{IUczKTRtO1%H6a8C0TY7R2qX|935YBrOeRAzB$=7a3;}{T zprD8w;aaH+Ev~p$LvVNeSF#bpF(=`t0`XtcsbNUaD2y+Kc|+wTke`5g>;d|{7+ z=eRXA!y{fWU1Vv|&}(k?Fra} z`xQK(;Xyn^$QKn^>Eiu_6w#kBotJw=!!Pit_%^|(?L@D>_Fh8GSW&KIitXw|+fMA$ zmwlX29$&VQf%|n}KcOuK+-*@ssjZfMIG}?M63Ptl9BY>DLym%{cvFn@w!3^SMe|$z z!LT0w(;A+^VR6bfgM;~{hUf6SDA7viY{Uy1UNo{*SuwwwvsJAkfR{D=8qX8#Ay1eK zAnbL!+Ghp*s{{J3{zk)ZVIi0TE_a)XBD|{MD2@qdVxH|dURUsjhBxt+Sdo}F-io&g znYF%<$0$5+du|};=OXmy`urW92`YYvcNM&+;eDJG6O)$63O*E9Cyuavgg+?wqlS<1 zC()NUe(VSMRIi`U2r1{(PrE->J4N`5hEw=le4`actoR#Y=#N=-`&$gdR{VpI_v46W zuiKNm(i`HKJrk_>;{O0cuJ&esuGi=7_Ub@A5npNe8mW{88|SUM*&B8>wR=?j8{a7S zkA`n?TD)R!$^yYs@9k(>9a2dmSs{}~W*pN?@Q6KCEK440Jx+>7R!R_?lJh1@WYb8~ z0a}YET-ELhh3ff8^1_s)(I6}!B(cFdzrU@**F4kXX;&y&oJcO96k&EaEvXu%QM#D! z7;DRG?cPMz)@k#pZNw&}Rgj@a1^ISoWHq3oU1k-Pz#XB+zX{nfy z(J;ea>Gy|2;h-xJLx${BHONeEu2O2&sFJGeune+Li$2h*(WQp8N~Jd96m@9iBY)q~ zj0!TXCS)7uf4ge75zI!hE3{Tzm{n!ET;G|;vWBT6^%SoTD0GE*Bx{mlN0yP;&$HIs zEWD{^@SCQJ)kB=KF5sq`#WIi%6EgVNWPi5t74;Rj`kRn>F_ag5P`+{Q3Us+ zt4^l{QLHN{*o#OMTbRF=*&CSU0bQ~u>rWKh&qXjevW1O|i{ch0W2GxQZWmm0b$B_8V-dG81Lvn9^7_*cqN`SGm0lT z{wM>aAZ(;lp`Y2PZaT5`U-9=g-(= z+{?%ZQH(xJ!;_ef=TXMrm6H93wE~O1vM%(y)v>nT77go@2miO=# z=|R@@p@|N_O^4A;FTz8SBUnktc;Izj@B~`uBwFcXcbV(gpBXwe} z)Qxr0CUi?%u|6W*jLW5+EbPJt=^k7mJ%os~9~-4Z*d!fh`DI)w9mQ4BTi7gpge}r% zxLP{J@>jSrBGiGMEMI0%yaI1OkRtzCWC4X5vq6oQu;=d+eIo})@FfpS zk)sAJj?>aOEz_xf8f5)6@I7`Izi;E7e>?a5JGk@j!U(>{6<{~l{hhb~ccB({V>Z`) z1Mb5md~^>-b6d!%W9aD*}0=s%bbZ_e351| zXJ$vAra8=6_#E*E3Z^p=c2-efRcNk)<7fW?!*X)yBF34CW-v*hdDIZwcO2(s%{*4y zkAKw_9GWg)m_76^j4sG_mY5u8c#DXlWVsbdI;-|m;vOVymTAwKclPlA7JF&%Udo_? zC=H7oppoE<@Yr6x0=a{nPxd%<#Iv3cl}BDh3a2C&$G8){#(})b*tfXLyun@OO_cL} zvj*=PNy_EmQ;z(=i;XXGEiL560VDVnm`@`?iO?dV;a|gCsn8PJK)4G5 zyQ<$Rxa|3}jgf|P{9!)`>*D=1frBd2%Yuxu(60z!2duR0tQqvNU&bJbmeUHRd8n1+x{VWwRs Y!X8>f>&i1p;tOOq@7H?TKoMmA7o~rzJpcdz diff --git a/build/classes/guimybank/GUIMyBank.form b/build/classes/guimybank/GUIMyBank.form index 30b639f..e4ca2ee 100644 --- a/build/classes/guimybank/GUIMyBank.form +++ b/build/classes/guimybank/GUIMyBank.form @@ -139,14 +139,29 @@ + + + + + + + + + + + + + + + diff --git a/src/guimybank/GUIMyBank.form b/src/guimybank/GUIMyBank.form index 30b639f..e4ca2ee 100644 --- a/src/guimybank/GUIMyBank.form +++ b/src/guimybank/GUIMyBank.form @@ -139,14 +139,29 @@ + + + + + + + + + + + + + + + diff --git a/src/guimybank/GUIMyBank.java b/src/guimybank/GUIMyBank.java index d65fc40..ed46b3a 100644 --- a/src/guimybank/GUIMyBank.java +++ b/src/guimybank/GUIMyBank.java @@ -5,7 +5,11 @@ package guimybank; import java.awt.Color; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import javax.swing.JOptionPane; +import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.LineBorder; @@ -15,7 +19,10 @@ import javax.swing.border.LineBorder; */ public class GUIMyBank extends javax.swing.JFrame { - private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(GUIMyBank.class.getName()); + static Border borderOriginale = UIManager.getBorder("TextField.border"); + + private static final java.util.logging.Logger logger = java.util.logging.Logger + .getLogger(GUIMyBank.class.getName()); /** * Creates new form GUIMyBank @@ -33,6 +40,7 @@ public class GUIMyBank extends javax.swing.JFrame { * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents private void initComponents() { @@ -64,6 +72,36 @@ public class GUIMyBank extends javax.swing.JFrame { lblSaldoIniziale.setText("Saldo iniziale"); + txtNome.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtNomeFocusGained(evt); + } + }); + + txtCognome.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtCognomeFocusGained(evt); + } + }); + + txtCodiceFiscale.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtCodiceFiscaleFocusGained(evt); + } + }); + + txtDataDiNascita.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtDataDiNascitaFocusGained(evt); + } + }); + + txtSaldoIniziale.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtSaldoInizialeFocusGained(evt); + } + }); + btnDataDiNascita.setText("[]"); btnAprireContoCorrente.setText("Aprire conto corrente"); @@ -150,40 +188,75 @@ public class GUIMyBank extends javax.swing.JFrame { pack(); }// //GEN-END:initComponents - private void btnAprireContoCorrenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAprireContoCorrenteActionPerformed + private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtNomeFocusGained +txtNome.setBorder(borderOriginale); + }//GEN-LAST:event_txtNomeFocusGained + + private void txtCognomeFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCognomeFocusGained +txtCognome.setBorder(borderOriginale); + }//GEN-LAST:event_txtCognomeFocusGained + + private void txtCodiceFiscaleFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCodiceFiscaleFocusGained + txtCodiceFiscale.setBorder(borderOriginale); + }//GEN-LAST:event_txtCodiceFiscaleFocusGained + + private void txtDataDiNascitaFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtDataDiNascitaFocusGained + txtDataDiNascita.setBorder(borderOriginale); + }//GEN-LAST:event_txtDataDiNascitaFocusGained + + private void txtSaldoInizialeFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtSaldoInizialeFocusGained + txtSaldoIniziale.setBorder(borderOriginale); + }//GEN-LAST:event_txtSaldoInizialeFocusGained + + private void btnAprireContoCorrenteActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnAprireContoCorrenteActionPerformed String nome = txtNome.getText(); String cognome = txtCognome.getText(); String codiceFiscale = txtCodiceFiscale.getText(); - String dataDiNascita = txtDataDiNascita.getText(); + // String dataDiNascita = txtDataDiNascita.getText(); String saldoIniziale = txtSaldoIniziale.getText(); - - if(nome.isEmpty()){ - JOptionPane.showMessageDialog(null, "Inserire il proprio nome."); - txtNome.setBorder(new LineBorder(Color.red)); + boolean nomeEmpty = nome.isEmpty(); + boolean cognomeEmpty = cognome.isEmpty(); + boolean codiceFiscaleEmpty = codiceFiscale.isEmpty(); + // boolean dataDiNascitaEmpty = dataDiNascita.isEmpty(); + boolean saldoInizialeEmpty = saldoIniziale.isEmpty(); + + if (nomeEmpty || cognomeEmpty || codiceFiscaleEmpty /* || dataDiNascitaEmpty */ || saldoInizialeEmpty) { + if (nomeEmpty) { + txtNome.setBorder(new LineBorder(Color.red)); + } + if (cognomeEmpty) { + txtCognome.setBorder(new LineBorder(Color.red)); + } + if (codiceFiscaleEmpty) { + txtCodiceFiscale.setBorder(new LineBorder(Color.red)); + } + /* + * if(dataDiNascitaEmpty){ + * txtDataDiNascita.setBorder(new LineBorder(Color.red)); + * } + */ + if (saldoInizialeEmpty) { + txtSaldoIniziale.setBorder(new LineBorder(Color.red)); + } + JOptionPane.showMessageDialog(null, "Inserire tutti i dati richiesti."); return; } - if(cognome.isEmpty()){ - JOptionPane.showMessageDialog(null, "Inserire il proprio cognome."); - txtCognome.setBorder(new LineBorder(Color.red)); - return; - } - //TODO: verifica codice fiscale - if(codiceFiscale.isEmpty()){ - JOptionPane.showMessageDialog(null, "Inserire il proprio codice fiscale."); + + if (isCodiceFiscaleValid(codiceFiscale)) { + JOptionPane.showMessageDialog(null, "Il codice fiscale non è valido."); txtCodiceFiscale.setBorder(new LineBorder(Color.red)); return; } - //TODO: gestione data - //if(dataDiNascita.isEmpty()){ - // JOptionPane.showMessageDialog(null, "Inserire la propria data di nascita."); - // txtDataDiNascita.setBorder(new LineBorder(Color.red)); - // return; - //} - if(saldoIniziale.isEmpty()){ - JOptionPane.showMessageDialog(null, "Inserire il proprio saldo iniziale."); + // TODO: gestione data + // if(dataDiNascita.isEmpty()){ + // dataDiNascitaError = true; + // } + if (!isSaldoInizialeValid(saldoIniziale)) { + JOptionPane.showMessageDialog(null, "Il saldo iniziale non è valido."); txtSaldoIniziale.setBorder(new LineBorder(Color.red)); return; } + btnVersamento.setVisible(true); btnPrelievo.setVisible(true); btnListaMovimenti.setVisible(true); @@ -192,17 +265,44 @@ public class GUIMyBank extends javax.swing.JFrame { txtCodiceFiscale.setEditable(false); txtDataDiNascita.setEditable(false); txtSaldoIniziale.setEditable(false); - - }//GEN-LAST:event_btnAprireContoCorrenteActionPerformed + + }// GEN-LAST:event_btnAprireContoCorrenteActionPerformed + + boolean isCodiceFiscaleValid(String codiceFiscale) { + Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); + + return !pattern.matcher(codiceFiscale).find(); + } + + boolean isSaldoInizialeValid(String saldoIniziale) { + boolean isSaldoInizialeValid = true; + double valoreSaldoIniziale; + + try { + valoreSaldoIniziale = Double.parseDouble(saldoIniziale); + + if (valoreSaldoIniziale <= 0) { + isSaldoInizialeValid = false; + } + } catch (NumberFormatException _) { + isSaldoInizialeValid = false; + } + + return isSaldoInizialeValid; + } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ - // - /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. - * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + // + /* + * If Nimbus (introduced in Java SE 6) is not available, stay with the default + * look and feel. + * For details see + * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { @@ -214,7 +314,7 @@ public class GUIMyBank extends javax.swing.JFrame { } catch (ReflectiveOperationException | javax.swing.UnsupportedLookAndFeelException ex) { logger.log(java.util.logging.Level.SEVERE, null, ex); } - // + // /* Create and display the form */ java.awt.EventQueue.invokeLater(() -> new GUIMyBank().setVisible(true));