[SWING] : Comment limiter un JTextField à 25 lettres capitales ?

Le
Foub31400
Bonjour,

je souhaite limiter un champ de saisies 25 lettres en capitale, avec
le premier caractre obligatoire.
J'ai essay d'utiliser un JFormattedTextField avec un
MaskFormatter("UUUUUUUUUUUUUUUUUUUUUUUUU") mais si j'cris moins de 25
lettres, soit il m'efface la donne saisie, soit si je dcide de
modifier le comportement par dfaut et de commiter, il me complte
avec des blancs

Sinon, j'ai trouv le code suivant pour limiter un JTextField un
certain nombre de caractres : [CODE]
class JTextField2 extends JTextField {
private int maxLength;

JTextField2(String text, int columns) {
super(text, columns);
maxLength = columns;
if (maxLength <= 0) maxLength = -1;
addFocusListener(this);
}

protected Document createDefaultModel() {
return new PlainDocument2();
}

class PlainDocument2 extends PlainDocument {
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException {
if (str == null) return;
if (maxLength == -1 || getLength() + str.length() <= maxLength) {
super.insertString(offset, str, attr);
}
}
}
}
[/CODE] , mais je ne peux pas m'assurer que l'utilisateur ne saisit
que des lettres en capitale.

Comprenez-vous mon problme ?
Comment puis-je faire ?
Avez-vous une ide ?

Merci beaucoup,
F.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Real Gagnon
Le #227367
Avez-vous une idée ?


Essayez http://www.rgagnon.com/javadetails/java-0198.html

il suffit de "setter" le flag toUppercase à true pour la conversion en
majuscule.

Bye.
--
Real Gagnon from Quebec, Canada
* Java, Javascript, VBScript or PowerBuilder snippets
* http://www.rgagnon.com/howto.html
* http://www.rgagnon.com/bigindex.html

TestMan
Le #227361
Bonjour,

je souhaite limiter un champ de saisies à 25 lettres en capitale, avec
le premier caractère obligatoire.

Comprenez-vous mon problème ?
Comment puis-je faire ?
Avez-vous une idée ?


Bonsoir,

En premier, commencer par RegexFormatter sur ...
http://java.sun.com/products/jfc/tsc/articles/reftf/
... et mettre la bonne expression dessus.

Par exemple, Si tu veux de 1 à 25 majuscules de A..Z :

p{Upper}{1,25}

Mais si tu autorises mes accents et autres signes diacritiques :

p{Lu}{1,25}

Avantage, tu pourras adapter expressions en fonction de tes besoins ;-)

A+
TM

Publicité
Poster une réponse
Anonyme