From 62f6f94be79efe28ceafcfdc362e770572998670 Mon Sep 17 00:00:00 2001 From: dick Date: Wed, 8 Oct 2025 15:15:04 +0200 Subject: [PATCH] Event commentaire --- src/Dessin.class | Bin 0 -> 1799 bytes src/Dessin.java | 18 ++++++------------ src/Event$1.class | Bin 0 -> 927 bytes src/Event.class | Bin 0 -> 2490 bytes src/Event.java | 39 +++++++++++++++++++-------------------- src/Fenetre.class | Bin 0 -> 4189 bytes src/Partie.class | Bin 0 -> 271 bytes src/Pendu.class | Bin 0 -> 255 bytes 8 files changed, 25 insertions(+), 32 deletions(-) create mode 100644 src/Dessin.class create mode 100644 src/Event$1.class create mode 100644 src/Event.class create mode 100644 src/Fenetre.class create mode 100644 src/Partie.class create mode 100644 src/Pendu.class diff --git a/src/Dessin.class b/src/Dessin.class new file mode 100644 index 0000000000000000000000000000000000000000..7e611f9a5043f09ff31883d55adc7d869c246a99 GIT binary patch literal 1799 zcmX^0Z`VEs1_pD6OfCi)26c7@4K4;I22CyoX$CEJ25l||Rt6mqM;9cm$Hkz}V8G5` z$jM;DU<@KmxEQz?OxYRCSR5P}7`Pbt7|cN;7Mu*M43;346-cu+h_K;euw}3ViP?h) z2N2=N!QjNs;LOh8!pOj8lbM%UV#mn9tf3jk$iU*9pOVVR!0(fpm+DuVo0M7DSHj33rs0#7SeB@tSYD#d0z*7ILn04D5<@Z%LkdGG4?`M=NC!Ecfsug?;vuLvD)fuXGxO5*y#f;R zQgav?ST#I7L7^m2oLUl4l$w@WRFs+$oLQC1$RLgsqHvFcgOp9f6QYZ^IJLwnF*!TE zD8Do>g^@uRNeehIz{&;T9)fwCk%29_C^fMpm61Ud7AGhX$H*WK*A$eRmy!yKK#$D4 zl43>%0dLpHct^hwPe&h5$6!xCcXoyhMh0f@)JjGM9?!hI)FS7c#Ny)AVnzm8NOXgY zMm0snJGIi9kwGZT(I?auVOYGsA0vYhL=!lT_$OthCYM+kAd0g%wFDBepi~J_3UVbx3><2lE{;Lo@$Ny6k&Fxi2o;cEWn|zePAvhm z85uazQ%k}#Q%XRgprPr>$iSJNTH=wKnVwMsOPyfP_$Gptu?kKMU_t+~#2iKj_LR)xg8brCMh0md5d!iogCc`8gA4-*Ff%YR$TG+=Ffzz9 zFfjNrurV+)FfeFoZD(NA+ReZeDaaHd$QZYsfq5GPi`H%i)<{8yuMo7Ifo&TD`$h%^ z21W)21_lNp1{MYe27U$>20;c<1|bGb24MykP?mz2&BVvR&LG0Tz?i3{y`6zWdm97i z0R}E#olOkfn;3YuG4Sf_X5fny;@{37u#G`bXA^_aHU?p>Z44rITH6>z%~)hbS#~gp z3Gn2Yv5K;YvZk1^>4>t5vdOaMh_Y>C5Eo^Y72wH9Fk{ydWfx@=Wfx`L#vm@smSe^N z5?~c&7v)F*i$S<70$e!>qU>NjU}3NVGfq)fGcHk9Q5LXS+&ZG1qFkb!qTC>}AodI7 znDK~mn(>Nqi}ECx@#%>2it?n0@_`5*)(lY|){Jco5+Htp8NVpMD2o7FPJ)>LNEyE< zuc!dXAOWr%GeNMNL{5U45J*l)lvh+RMN~+XML;AcVH<-uTrdGi5ae1jVUU!7D6gn+ zil~4nivR~)Jyy z7?c?t8Ppg&7}Oa;8MGMU7_=F(81xwO8T1+I7>pREGMF*UVK8S{z+l0!ioud$8-oqQ zK?YlfqYQQoXBg}m9x*sGyku};_{`wS@Snkhk(I%dk)OefQH8;W(UKv6(ViiYF@zzQ zF_R&TF_$5nfssL(K?RaF7^E2(!Rd}!NNNK-K|zvY3XVq^$l KFk%Q~;RFDvrFsJq{paBxo1c_;Z zSla9iI_wO3j12r`i8(4csU;<;MV@&Dr6r6E5H1zFsTCz|nW;G` z){G2nB^jB;Dh7-U>^`n#sd*(JA)Cy+%o00B1|^5s-_(+f{1kQueI5n_217;$4!_jm z5|8}i5*`MA1_2%hUIsoM20;cxb_OFJ24e;jb_P=(1~Ue8b_NR`21^Djb_Q!61{(%j z9tJxGLmmcu1_vGnM+PTG26nK0Du#>C!t__egR zGB9fCY-M25+Rnhdk%57MkwJukfq{*Ik%56hm4T5#ltB!tDFLcUOM4pwi>=HK2G*Gj zf?8V`n6@#nZDU|(S;)Ypy^VomIRm%0%nk<5Z46u>^O(Tqi7~J;FfeE^urg>eNHJ(J zC^G0UXfo(Ah%+!Sa4<0cVUS{EV`pGtkN`VXl0k}rfq{iVnn8v^7Azvopv%C(z{SAG Iz|8;#0P9!BO#lD@ literal 0 HcmV?d00001 diff --git a/src/Event.class b/src/Event.class new file mode 100644 index 0000000000000000000000000000000000000000..d707c907ea3ec188131d21f1554ddc6375b3b386 GIT binary patch literal 2490 zcmX^0Z`VEs1_pD69xeu11~X0u83uC@VZp^9!(hq9V8vh!B5b%AY#Hph7z`Qg*ct4( z7&sXmKpaPqDkl)jnTx@Q!39LPaxl1oMBG6f4-N)T5bXsr#G8Y`hl|0N!4D+j&&3eH z5Xj9C#1JgRz`zjB&Je-Q5XsIE#mKd%_cK1v&4>( zK~n?n7>HsVwrYkkGO#%3r=&76@cU%urTUfTCZ!gIBqrsgGBP+2X9zCmfXwD9&n!xH zElbTSDQ09~)&L3dCxU$*kXn?MUz7_97?7_vY_HbW*O0|O634nr;vLmopuBLi!+qi$3z4?_V%ArC_lLop+R zdRS^{W=>9Ol|pJ>Nl|K%LTO&ALUC$oPO3sqYDq~^s)B~2Zj`1TJ3|Q%Ln%WU4?{Ua z1v^6}4?`70H9JEM4?`_O9V3H)Q+|F)aY<2Pfp2O_Mt({$KN~|m2SWo7LnA{IBLgeg zv5X7?ATR5K(}sUiR%&tyBZDkh2t9OtGK))6^HPf#8N@*H75c^HnR)5@ULmO!C2pCi zIVmV+1(y_M=A|<-utU>0BLiQ0Y6&DlJo5@lOBflXG&I5Sh-s2FBLi=GYDsWvUW!v` zNlAVlBZD})Vu*w_BZDxCYaqgm41$R%DUeiwaJLeUbOTcXPC7~&KH!kC#^p9p`r=DW zN%2mtglS}Cz)X@z(qMDh(^E@8LB+@*0`&?c&>;b3&B(w~Qk0p?$iQ8aA6ih5TI8Hq zoXW_+UJTPE3Uxd5=a0-JPAoz;Ba6|&PXhBEMa6|(eTuChDIMm6})U>WMD5#%qdOvPh(_| z&~Sz%6Ero}j11CXOR<+!j0|jv$;qh&C5#Lx0ReXj7eg~c3nPO9C`lHjDir6J=4KYB zDrgksBqpb3);El$Ac2I5#~ zG_f!PSuAfftc==m|T)yRLRcJ#mKld53sR9Kp~|C?Tn-B+Bq68~&WSlW!I>qg*6a-3 zj0~z69>V4}Mg}?j>KGImWEf-_7#ZXkm>7gWg)IXEgAk~^Wng4bVPIfjVo+sZVPIrX zV^C*cV$fhPy42%q#3=9ln46FVuX+Qz_*utkc2je&tdmVtvojzNGykwKI}i9w1%l|h}sfPs-g zmq8C|gCYYX0}}%S1FP0H1|EcVF0h~}0}F#00~4sifGXe2zzlX!GQ=UQKHA$Dc(*a| zZDZi~)fN)i#vrJ(jX{WI0RxYYknlDJky#7^5S5}rVmlbbH)?HRU_Qnm4x)6Jw=qcU zV36F&AjQP6oIx0>PG=W`Gy?-jEjWllA*RK^#lXN|#lXQ}%^=KR!yw6E$DqYv&tS&j zz+lec%wWgh!VtvZ#*oC|!C=6^z`)1A@|Qu2oxzZu!H7qSpMizJ7;KgagDC?8ILbH~ i*xM4518+3}FCe8H!i{ literal 0 HcmV?d00001 diff --git a/src/Event.java b/src/Event.java index 4b581d9..88d9394 100644 --- a/src/Event.java +++ b/src/Event.java @@ -3,28 +3,28 @@ import java.awt.event.*; import java.util.function.Consumer; /** -* La classe Event regroupe et branche tous les listeners liés à Fenetre. -* - Validation de la saisie (1 lettre A-Z, majuscule) -* - Action sur Entrée ou clic bouton -* - Notification du handler externe (fourni au constructeur) -* Aucune logique de jeu ici. -* @version 1.2 -* author Adrien -* Date : 08-10-2025 -* Licence : -*/ + * La classe Event regroupe et branche tous les listeners liés à Fenetre. + * - Validation de la saisie (1 lettre A-Z, majuscule) + * - Action sur Entrée ou clic bouton + * - Notification du handler externe (fourni au constructeur) + * Aucune logique de jeu ici. + * @version 1.3 + * author Adrien + * Date : 08-10-2025 + */ public class Event implements ActionListener { private final Fenetre window; private final Consumer onLetterSubmitted; + /** Constructeur : conserve les références et branche les événements. */ public Event(Fenetre window, Consumer onLetterSubmitted) { this.window = window; this.onLetterSubmitted = onLetterSubmitted; wireEvents(); } - /** Branche les listeners sur les composants de Fenetre. */ + /** Branche les listeners sur les composants de Fenetre.*/ private void wireEvents() { JTextField letterInput = window.getLetterInput(); JButton sendButton = window.getSendButton(); @@ -47,27 +47,26 @@ public class Event implements ActionListener { }); } - /** Réagit à Entrée ou au clic bouton : soumet la lettre. */ + /** Réagit à Entrée ou au clic bouton : récupère, valide et transmet la lettre. */ @Override public void actionPerformed(ActionEvent actionEvent) { - submitLetter(); - } - - /** Récupère, valide et transmet la lettre au handler externe. */ - private void submitLetter() { JTextField letterInput = window.getLetterInput(); - String inputText = letterInput.getText().trim().toUpperCase(); - letterInput.setText(""); + String inputText = letterInput.getText().trim().toUpperCase(); + letterInput.setText(""); // reset du champ après tentative + + // Validation : exactement une lettre A–Z if (inputText.length() != 1 || !inputText.matches("[A-Z]")) { JOptionPane.showMessageDialog(window.getWindow(), "Veuillez entrer une seule lettre (A-Z)."); return; } + // Notification du handler externe, sinon placeholder if (onLetterSubmitted != null) { onLetterSubmitted.accept(inputText.charAt(0)); } else { - JOptionPane.showMessageDialog(window.getWindow(), "Lettre soumise (placeholder) : " + inputText); + JOptionPane.showMessageDialog(window.getWindow(), + "Lettre soumise (placeholder) : " + inputText); } } } diff --git a/src/Fenetre.class b/src/Fenetre.class new file mode 100644 index 0000000000000000000000000000000000000000..97ced7c4dd349345381ace02306f6fd616741ab9 GIT binary patch literal 4189 zcmX^0Z`VEs1_pD67hDW>42fI}W(-N}49Q#!%nXU_3@Ka;tPH6jP8uhJ8ACc3g9t+g zJ3}TH0~bRgNF)m+mkrXD1LEd_Sa~2-`5Zp4PU#b3U|^Wc#W00oDm%k8kTVn6 z8Kw&{Ffz>MVz6MC0}`1l#K6R`fQw-v!yH1!7MTxno){G3C<@rS^K8Z=GIT%X7qSlNI+&QTwC89NGH?~A=A}55mXze@F*1mvs)GnyGcs_b6eX5N<>#eh*cXtPmzrbE$iQZknU`5& z$H>5}p&7==z~Y>rlFG=y?~|FA>Q|bZlv)&$n3R*s$iQ8kT2fjN4)q^@a#3nxNoqL4 zJ7OA|sBVCHNC2V~>>;qFj0_lR!Q!CsNlz_-S%IMl7KnW5sU<$hfh2`)HF7ZVrl*z! zBZZVWx?*@(@qjExc!)bawZsJ;dMvq#nRy_WM}vK-pOcuEt{+@dl$n=q4GK5joW$Iu zltdMfG8IEc1{A&lBZH!bk6UV9YDrP5HIf0&8Hq)S$t9^pU^BRa^Gl18Q{6H_;mre8 zt_Mm;JPe);UOWuG3|@>3LLdQn$^wTRBZDZipi_Q@Phw?$X$eT%5*~)749j>J>=_(* z7?v}vU}Ru(Ni8nU%;RBjXYk-*Sjn)8hry4*pNGMb!HI_N-4;q^*jt47&h`SY+~5V!?1;6E4n^#dSGPWj8}j{ zMg}QlR|kW#igSKmaY?9!>G`P&p`IZ5?K})S z7X&iT0o`FW{%B|HrK84fTq2qVnO$uCEQ&_R${%NQAi zUGqwcQmYh7^HLQ+nXo8T!HSVV45SMl-0+kI(zBI^;Sk85V1waGAnA#bf!#H)EWa|f zh=;+I!HtnYz$rh!q`0IgvA{RABqKkin4gW|umFP>KO4gl9)_a~$JiN;^DvxXILXMs z4vl(723FUy)VvY_hEx1(45tMc&hRjtWjF`2`aBOq5JNCO8^Z+-hKoE5ml!UyGhE?e zxXN&ikwF0DVn_n@Ps&P71{EV3kVFRxNay^#lElos)FNw7P{QRbPA!3i1tWtrk}`;x zZ(?3zIy8Cm6{nVfG^gg3fKnYJgE*3MkOah3kfF?pDJhH$S}5|+$gqYK6R0r+Db7m5 zGK(|8g$;{F6v!BnqSV6D)Z!Ai{N&PN&pcSkz^tJe#mFEEH61-CvKOb81ZP&IGBU7g zc!Iqs3i4upa$-qleqK;&PGU)BS!zf=y8Geo3u9!EC{8VLNli;E%_(ut$uCazFGwu{ zYiDF&(Eyt%hQ)TU1T0XHodt0Q$YGFFECkgIiVlznIQL6}q79acobroOQj6RYlS}f8 zDj69BA!Vp*Zb3;UL<&@*czSwzLP8U!EeWhmAEE?Qo))K;KsbyHau7?gD+Pr%Z*gjg zV@_szUT$h$Nd(BJZXjVc4Ujcqj0|GMsU;ryMVVEg1e60;$;EJ;;RdKOyvfMGTvQ4! zBq6SXq`{!lygX19VvQ}ohn8gKWR_&67Bez%XXcgVXQ%okmZTOT;szXya3etOL5X)r z0=L!-13BOpBZCCQlMtIxOINnUME0L|j)C)~B z;CO(_Iw$7j1ZS3jT6iiLfdg?YB&OjRdIs%%4YAi6xxE65Ud(`l`+%L{IU|EAh9|Ja z2qS|Wesv6r3}y^=3=9mc3{0T*2Ll5G6R4E|rkxpFz_cra8<=)y@L*tI;9+0{HFX#m z8N3-77&bAmGB7hRFr;a1XJFLY#=x|jfjM$J1B;LLZU)v!ZI(dn*Hvw$>H~o^1@g;aXbT82Gj_@Ph>S!2;VD1bnr1z|1WS94y-y1huv> z2yJ5!4&TVYz`)4h!@$5`#lXkFz#zlG!XV4Q!645dz@We&%b>`h%Am|(z@Wll$)LvI z$e_;P#h}UH&!EK+%Ams#%b?4U%Am)<1Zt&0-5<=r!obMDz@V+Qn?WQ}NOU`c*j5G( zkb4E0A_SQtwlRopEBtSIVHU>$ABg7b385kIh7hM4I6O zr-mp74u(VlE>O`8)nWlnh!VRQ%p$iln0xPLu!z*s+QneWz_6Xc3MuLHf#W%vfrBBI zL7X8$fQuoPAr5Ma8Uqv9d_Jvh4A$Da7;Hec+ahd-1Z*4wGebN$OD8Zq1b4w18SXPY mWq80K$F*GE8Ea2xiS-n8`4UVIBh`!+Zd*aYzmT literal 0 HcmV?d00001 diff --git a/src/Partie.class b/src/Partie.class new file mode 100644 index 0000000000000000000000000000000000000000..85cd51fcbd3a82959e9ab4396dbd59e9fb42f688 GIT binary patch literal 271 zcmX^0Z`VEs1_pBmK`sUs23`&ZK6VCvb_M}P1~!|_yv!0iMh0dL%`ip=7U%qwR7M7V zpUk{eztY^K)S{5Yq?}Yn29A>a;F6-uymUqe5e-eBti-ZJ{hY+SbbW}ZH6sI8aDHh~ za;jSvVo^zEsvbxk4+AR$8zTb)BLf>ml#xLIBo5KG*e=O4g literal 0 HcmV?d00001 diff --git a/src/Pendu.class b/src/Pendu.class new file mode 100644 index 0000000000000000000000000000000000000000..3fd926e95f461b7b4fe4cb40edf5abe45b33463e GIT binary patch literal 255 zcmX^0Z`VEs1_pBmel7-P1|D_>UUmjPMg}&U%)HDJJ4Oa(4b3n{1{UZ1lvG9rexJ;| zRKL>Pq|~C2#H5^5Mh2GL#LPTK1~H9jpRB~PME#t^ymbBGlA_GKbZd}CuHgLAqU2P! zOps!(fYiK{QazAD9tIW$Rz?O^um~fA07wj?**_^OHMxXAk%5VUnE?ct7#Kl{85kMZ z7#J9285kKD85kH?wYD=bZe(C!U}RutU|?Va3vw}VGH@_(LX}E_Wf?G)@iH(na4|42 IFfnig0FgN=lK=n! literal 0 HcmV?d00001