Bonjour,
je souhaite limiter un champ de saisies à 25 lettres en capitale, avec le premier caractère 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 donnée saisie, soit si je décide de modifier le comportement par défaut et de commiter, il me complète avec des blancs...
Sinon, j'ai trouvé le code suivant pour limiter un JTextField à un certain nombre de caractères : «», mais je ne peux pas m'assurer que l'utilisateur ne saisit que des lettres en capitale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 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); } } } }
Comprenez-vous mon problème ?
Comment puis-je faire ?
Avez-vous une idée ?
Merci beaucoup,
F.
Partager