Voici un ensemble de source qui feront partie d'une prochaine source plus ambitieuse, mais vu que je n'ai rien trouvé de semblable sur le site, j'en profite pour les poster afin de le faire partager à tous, et que ces classes ne se noient pas dans une source plus compliquée.
Il s'agit de classe de filtre pour des champs de saisie.
Le problème avec les JFormattedTextField, c'est qu'il formatte le texte que lorsque le contrôle perd le focus. Ces classes permettent au contraire de valider la saisie en temps réel : lorsque l'utilisateur saisit les informations.
Elles peuvent être utilisées avec un simple JTextField (comme dans l'exemple fournit).
Au menu, des filtres pour :
- Les entiers
- Les flottants avec 2 chiffres après la virgule seulement (comme un prix)
- Les réels
- L'heure (au format hh:mm:ss)
- Les dates (au format dd/MM/yyyy)
- Les numéros de tel au format (##-##-##-##-##)
Il s'agit d'un bon exemple d'utilisation d'un PlainDocument.
Source / Exemple :
// Très simple à utiliser :
_txtFilterHour = new JTextField();
_txtFilterHour.setDocument(new HourFilter());
Je déterre un peu le sujet, mais je ne comprend pas très bien le truc :
Pour le filtre Integer, il est possible d'entrer "123.33" mais pas "-125" OR 123.33 n'est pas un entier, mais -125 l'est bien.
Surtout quand dans ta méthode "insertString" de la classe IntegerFilter, tu commences par :
if (!isValid(str, "0123456789-", 0)) {
return;
}
Pour ensuite faire une recherche du caractère "-" :
if (str.indexOf("-") != -1)
... bizarre ca sens le copier coller un peu à l'arrache.
De même le distinguo entre Double est Float ... est très bizarre (je ne le comprend pas).
En tout cas le principe est là : J'ai trouvé (grâce à toi et ta source) le moyen de faire des validateurs, plus qu'a mettre en place quelque modif et c'est tout bon !
;)
Nico.
(9/10)
Par contre pour les entiers ça ne marche pas bien car il accepte le point(virgule du decimal)
Merci Gros travail
je suis debutant,
comment importer ce code au eclips
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.