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:
@@ -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