forked from menault/TD3_DEV51_Qualite_Algo
		
	Merge pull request 'Fix classe anonyme' (#5) from dick into master
Reviewed-on: #5
This commit is contained in:
		| @@ -24,7 +24,7 @@ public class Event implements ActionListener { | ||||
|         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(); | ||||
| @@ -33,18 +33,8 @@ public class Event implements ActionListener { | ||||
|         sendButton.addActionListener(this); | ||||
|         letterInput.addActionListener(this); | ||||
|  | ||||
|         // UX : limiter à une seule lettre et forcer la majuscule | ||||
|         letterInput.addKeyListener(new KeyAdapter() { | ||||
|             @Override | ||||
|             public void keyTyped(KeyEvent keyEvent) { | ||||
|                 char typedChar = keyEvent.getKeyChar(); | ||||
|                 if (!Character.isLetter(typedChar) || letterInput.getText().length() >= 1) { | ||||
|                     keyEvent.consume(); | ||||
|                 } else { | ||||
|                     keyEvent.setKeyChar(Character.toUpperCase(typedChar)); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|         // UX : limiter à une seule lettre et forcer la majuscule (classe dédiée) | ||||
|         letterInput.addKeyListener(new LetterInputFilter(letterInput)); | ||||
|     } | ||||
|  | ||||
|     /** Réagit à Entrée ou au clic bouton : récupère, valide et transmet la lettre. */ | ||||
|   | ||||
							
								
								
									
										47
									
								
								src/LetterInputFilter.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/LetterInputFilter.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| import javax.swing.*; | ||||
| import java.awt.event.KeyAdapter; | ||||
| import java.awt.event.KeyEvent; | ||||
|  | ||||
| /** | ||||
|  * La classe <code>LetterInputFilter</code> limite la saisie d'un champ texte | ||||
|  * à une seule lettre de l'alphabet (A–Z), en forçant automatiquement | ||||
|  * la majuscule. Toute autre frappe est ignorée. | ||||
|  * | ||||
|  * @version 1.0 | ||||
|  * @author Adrien | ||||
|  * Date : 08-10-2025 | ||||
|  * Licence : | ||||
|  */ | ||||
| public class LetterInputFilter extends KeyAdapter { | ||||
|  | ||||
|     /** Référence vers le champ de saisie à filtrer. */ | ||||
|     private final JTextField letterInput; | ||||
|  | ||||
|     //Constructeur. | ||||
|     public LetterInputFilter(JTextField letterInput) { | ||||
|         if (letterInput == null) { | ||||
|             throw new NullPointerException("letterInput ne doit pas être null"); | ||||
|         } | ||||
|         this.letterInput = letterInput; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Intercepte les frappes clavier et applique les règles suivantes : | ||||
|      * - n'accepte que les lettres (A–Z)  | ||||
|      * - limite la saisie à un seul caractère  | ||||
|      * - force la majuscule sur le caractère saisi. | ||||
|      */ | ||||
|     @Override | ||||
|     public void keyTyped(KeyEvent keyEvent) { | ||||
|         char typedChar = keyEvent.getKeyChar(); | ||||
|  | ||||
|         // Refuse tout caractère non alphabétique ou une saisie > 1 caractère. | ||||
|         if (!Character.isLetter(typedChar) || letterInput.getText().length() >= 1) { | ||||
|             keyEvent.consume(); // ignore la frappe | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // Force la majuscule. | ||||
|         keyEvent.setKeyChar(Character.toUpperCase(typedChar)); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user