Maison >Java >javaDidacticiel >Comment restreindre l'entrée JTextField aux entiers positifs uniquement ?

Comment restreindre l'entrée JTextField aux entiers positifs uniquement ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-12 21:18:15148parcourir

How to Restrict JTextField Input to Positive Integers Only?

Restriction de l'entrée JTextField à des entiers

Pour limiter l'entrée à des entiers positifs dans un JTextField, il est recommandé d'utiliser un DocumentFilter plutôt qu'un KeyListener. Un DocumentFilter fournit une solution plus complète qui gère divers scénarios de saisie.

Implémentation de DocumentFilter

Un DocumentFilter peut être implémenté pour valider la saisie au fur et à mesure de son insertion. Cet exemple de filtre, MyIntFilter, vérifie le texte saisi pour s'assurer qu'il représente un entier valide :

class MyIntFilter extends DocumentFilter {
    ...
    private boolean test(String text) {
        try {
            Integer.parseInt(text);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
    ...
}

Ce filtre vérifie si le texte saisi peut être analysé comme un entier. S'il est valide, il autorise l'insertion. Sinon, cela empêche l'insertion.

Application du DocumentFilter

Pour appliquer le filtre à votre JTextField, utilisez la méthode setDocumentFilter :

PlainDocument doc = (PlainDocument) textField.getDocument();
doc.setDocumentFilter(new MyIntFilter());

Avantages de l'utilisation d'un DocumentFilter

  • Gère divers scénarios de saisie, y compris les opérations de collage et de coupe/copie.
  • Permet une validation de saisie complexe, telle que la vérification des limites numériques ou des formats de données spécifiques.
  • Simplifie le code en conservant la validation des entrées dans une classe distincte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn