Maison > Java > javaDidacticiel > Comment puis-je restreindre un JTextField pour qu'il n'accepte que les entrées numériques en Java ?

Comment puis-je restreindre un JTextField pour qu'il n'accepte que les entrées numériques en Java ?

Linda Hamilton
Libérer: 2024-12-22 19:05:16
original
788 Les gens l'ont consulté

How Can I Restrict a JTextField to Accept Only Numeric Input in Java?

Accepter uniquement les valeurs numériques dans un JTextField

Il est possible de limiter un JTextField pour n'accepter que des valeurs numériques en employant la classe JFormattedTextField. Cette classe prend en charge la validation de divers types de données avec des objets Format.

Utilisation de JFormattedTextField pour la saisie numérique

Le JFormattedTextField fournit une solution flexible pour valider les données et offrir un retour visuel. Voici comment l'utiliser pour la saisie numérique :

NumberFormat integerNumberInstance = NumberFormat.getIntegerInstance();
ImprovedFormattedTextField integerFormattedTextField = new ImprovedFormattedTextField(integerNumberInstance, 100);
Copier après la connexion

Dans cet exemple :

  • integerNumberInstance est un objet NumberFormat spécifiquement pour les nombres entiers.
  • ImprovedFormattedTextField est un JTextField personnalisé qui étend JFormattedTextField, offrant ainsi des fonctionnalités améliorées. fonctionnalités.

Formateur personnalisé pour une analyse complète

Pour garantir que seules les valeurs numériques complètes sont acceptées, nous pouvons utiliser la classe ParseAllFormat comme décorateur pour le format object :

final Format format = new ParseAllFormat(integerNumberInstance);
Copier après la connexion

Ce format wrapper garantit que si une valeur numérique partielle est saisie, la valeur sera rejeté.

Fonctionnalités supplémentaires de ImprovementFormattedTextField

La classe ImprovementdFormattedTextField offre plusieurs fonctionnalités supplémentaires :

  • Commentaires visuels : Fournit des changements de couleur d'arrière-plan et de premier plan pour indiquer les éléments valides et invalides. input.
  • Position du curseur : Corrige la position du curseur après la saisie d'une valeur pour maintenir l'expérience utilisateur.
  • Remplacement de la liaison de clé : Interdit les actions inutiles , comme consommer des frappes ENTRÉE.

Exemple Utilisation

Pour incorporer la fonctionnalité de saisie numérique dans une interface graphique :

JPanel panel = new JPanel(new BorderLayout());
panel.add(integerFormattedTextField, BorderLayout.WEST);

JButton button = new JButton(new AbstractAction() {
    {
        integerFormattedTextField.addPropertyChangeListener("editValid", event -> setEnabled((Boolean) event.getNewValue()));
        putValue(Action.NAME, "Show Current Value");
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, "The current value is [" + integerFormattedTextField.getValue() + "]");
    }
});
Copier après la connexion

Cette configuration initialise un champ de texte numérique avec le comportement amélioré. Le bouton affiche la valeur et n'est activé que lorsque la saisie est valide.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal