bonjour,
j'ai lu plusieurs documentations à ce sujet la et j'ai trouvé un exemple qui permettait de se restreinde a la saisie de nombre.
je l'ai modifié afin de limiter le nombre à saisir par sa taille ce qui marche ainsi que l'émission d'un bip de signalement et la j'essais actuellement de rajouter un 2eme prarametre afin de fixer une valeur maximale
j'arrive à recuperer la taille du champ saisie dans le jtextfiled mais pas son contenure pour faire la comparaison
voici mon code:
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 import java.awt.Toolkit; /**** * Classe DDocumentNumber : permet de personnaliser la gestion du "model" des composants Texte * proposee dans l'api de swing * ****/ import javax.swing.text.*; import javax.swing.text.DefaultEditorKit.BeepAction; import javax.swing.*; import java.awt.BorderLayout; public class Filtre extends PlainDocument { private int longeur; private String nombre; private int valeur; private int max; public Filtre(int taille,int max) { super (); this.longeur = taille; this.max = max; } /** * Redefini la methode de la classe PlainDocument permettant ainsi d'autoriser * uniquement les caracteres desires */ public void insertString (int offs, String str, AttributeSet a) throws BadLocationException { StringBuffer sb = new StringBuffer (); char car; nombre=""; if(offs<longeur) { for (int i=0; i<str.length(); i++) { car = str.charAt(i); if (Character.isDigit (car)) { sb.append(car); System.out.println("str : "+str); } else { Toolkit.getDefaultToolkit().beep(); System.out.println("la caractere saisie n'est pas un chiffre"); } } super.insertString(offs, sb.toString(), a); System.out.println("sb : "+ sb); System.out.println("this.getLength() : "+ this.getLength()); } else Toolkit.getDefaultToolkit().beep(); } }
Partager