JFormattedTextField est une zone de texte modifiable qui permet de définir un modèle de zone pour lequel vous pouvez ensuite indiquer des programmes de formatage, de
validation et de vérification de séquence de touches, ainsi que des attributs de données.
Par défaut, JFormattedTextField utilise un modèle AS400FieldModel qui utilise lui-même par défaut un
EditcodeEditwordFormatter, un ComparisonRangeValidator et un NumericCharacterDocument. Par défaut, le type de données est caractère, la longueur de données est égale à 10 et le nombre de positions décimales, à 0.
JFormattedTextField possède tous les comportements d'un composant Swing JTextField, avec en outre les caractéristiques suivantes :
- Vous pouvez restreindre les données au type numérique ou caractère. Si la zone est de type numérique, vous ne pouvez entrer
que des valeurs numériques, un symbole décimal et des
signes plus ou moins. Si la zone est de type caractère, aucune restriction n'est appliquée aux valeurs entrées.
- Vous pouvez limiter les données à un jeu de caractères particulier, par exemple caractère ou majuscules uniquement.
- Vous pouvez limiter les données à une longueur de données maximale. S'il s'agit d'une zone numérique, vous pouvez
spécifier le nombre de chiffres significatifs et de positions décimales.
- Vous pouvez indiquer un symbole monétaire, un symbole décimal et un séparateur des milliers.
Les valeurs par défaut pour le symbole décimal et le séparateur des milliers sont les valeurs d'environnement local.
- Vous pouvez formater la zone automatiquement. Si le
drapeau autoAdvance a pour valeur true, lorsque le nombre
de caractères saisis correspond à la longueur de données,
les beans formatent la zone, exécutent la
validation appropriée et passent le contrôle au composant
suivant sans que vous ayez à utiliser la touche de
tabulation.
- Vous pouvez effectuer une vérification de validité par comparaison. Les types de comparaison sont : Equals (égal à),
Not equals (différent de), Less than (inférieur à), Greater than (supérieur à), Not
less than (non inférieur à), Not Greater than (non supérieur à), Less than and
equals (inférieur ou égal à), Greater than and equals (supérieur ou égal à). Par
exemple, si Equals est indiqué avec la valeur de
comparaison ABC, la zone n'acceptera que les données ABC.
- Vous pouvez effectuer une vérification de validité de plage. Par exemple, si la propriété de valeur minimale est
égale à 100 et que la propriété de valeur maximale est égale à 500, seules les valeurs faisant partie de cette plage
seront acceptées.
Vous trouverez de plus amples informations sur l'architecture Swing
sur le site Web suivant :
http://java.sun.com/products/jfc/tsc/articles/architecture/index.html