forked from menault/TD3_DEV51_Qualite_Algo
Fix classe anonyme
This commit is contained in:
@@ -24,7 +24,7 @@ public class Event implements ActionListener {
|
|||||||
wireEvents();
|
wireEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Branche les listeners sur les composants de Fenetre.*/
|
/** Branche les listeners sur les composants de Fenetre. */
|
||||||
private void wireEvents() {
|
private void wireEvents() {
|
||||||
JTextField letterInput = window.getLetterInput();
|
JTextField letterInput = window.getLetterInput();
|
||||||
JButton sendButton = window.getSendButton();
|
JButton sendButton = window.getSendButton();
|
||||||
@@ -33,18 +33,8 @@ public class Event implements ActionListener {
|
|||||||
sendButton.addActionListener(this);
|
sendButton.addActionListener(this);
|
||||||
letterInput.addActionListener(this);
|
letterInput.addActionListener(this);
|
||||||
|
|
||||||
// UX : limiter à une seule lettre et forcer la majuscule
|
// UX : limiter à une seule lettre et forcer la majuscule (classe dédiée)
|
||||||
letterInput.addKeyListener(new KeyAdapter() {
|
letterInput.addKeyListener(new LetterInputFilter(letterInput));
|
||||||
@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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Réagit à Entrée ou au clic bouton : récupère, valide et transmet la lettre. */
|
/** 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