Bonjour,
voilà je recherche un fonction qui me permettent de saisir seulement des lettres dans mon JTextField. Quelqun a t'il ca sous la main ?
Merci d'avance
Bonjour,
voilà je recherche un fonction qui me permettent de saisir seulement des lettres dans mon JTextField. Quelqun a t'il ca sous la main ?
Merci d'avance
j'ai essayé cette fonction mais ca n'as pas l'aie de fonctionner:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 import java.awt.Dimension; import javax.swing.*; import javax.swing.text.*; /** *Classe permettant de créer un champ de texte n'acceptant que des lettres et limité en nombre de caractères * * @author Ribaud Patrice * */ public class TexteSeulement extends JTextField { /** * Constructeur pour créer le champ de texte * * @param colonnes largeur du champ en nombre de colonnes * @param nb nombre maxi de caracteres */ public TexteSeulement(int colonnes,int nb){ super(new DocumentTexte(nb),"",colonnes); setPreferredSize(new Dimension(160,19)); //this.setFont(new Font("verdana",Font.PLAIN,10)); } static class DocumentTexte extends PlainDocument { int nb; public DocumentTexte(int nb){ this.nb = nb; } public void insertString(int offs,String str, AttributeSet a) throws BadLocationException { if (offs >= nb) { return; } char[] first = str.toCharArray(); StringBuffer buff = new StringBuffer(); int i = 0; for (; i < first.length; i++) if(Character.isLetter(first[i])) buff.append(first[i]); super.insertString(offs, buff.toString(), a); } } }








Sinon cyborg j'ai une petite classe pour limiter aux caracteres que tu souhaites en recuperant les evenements claviers, c'est assez nickel :
Ici je m'en suis servi pour limiter le champs aux numeriques
ca te permet réellement de limiter aux touches que tu souhaites
Je te met lien de reste du post ou ca parle de mask formatteur :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 package utilitaires; import java.awt.event.KeyEvent; import javax.swing.JTextField; /** * Class héritant de la class JTextfield * permettant de limiter la saisie au caractères choisi * */ public class JNumberField extends JTextField { public JNumberField() { super(); } public JNumberField(String string) { super(string); } protected void processComponentKeyEvent(KeyEvent e) { int id = e.getID(); switch(id) { case KeyEvent.KEY_TYPED: case KeyEvent.KEY_PRESSED: case KeyEvent.KEY_RELEASED: if (allowKey(e)) { super.processComponentKeyEvent(e); } else { e.consume(); } break; } } protected boolean allowKey(KeyEvent event) { int keyCode = event.getKeyCode(); char keyChar = event.getKeyChar(); if (keyChar == KeyEvent.VK_0 || keyChar == KeyEvent.VK_1 || keyChar == KeyEvent.VK_2 || keyChar == KeyEvent.VK_3 || keyChar == KeyEvent.VK_4 || keyChar == KeyEvent.VK_5 || keyChar == KeyEvent.VK_6 || keyChar == KeyEvent.VK_7 || keyChar == KeyEvent.VK_8 || keyChar == KeyEvent.VK_9 || keyChar == KeyEvent.VK_BACK_SPACE || keyCode == KeyEvent.VK_TAB || keyCode == KeyEvent.VK_RIGHT || keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_DELETE || keyCode == KeyEvent.VK_HOME || keyCode == KeyEvent.VK_END || keyCode == KeyEvent.VK_ENTER || keyCode == KeyEvent.VK_ESCAPE || keyCode == KeyEvent.VK_SHIFT) { return true; } else { return false; } } }
http://www.developpez.net/forums/vie...922&highlight=
Partager