Actualisation de champs

Résolu/Fermé
guewen56 Messages postés 34 Date d'inscription jeudi 29 novembre 2018 Statut Membre Dernière intervention 2 janvier 2021 - 7 déc. 2018 à 22:44
guewen56 Messages postés 34 Date d'inscription jeudi 29 novembre 2018 Statut Membre Dernière intervention 2 janvier 2021 - 8 déc. 2018 à 17:21
Bonjour à tous,

J'ai besoin dans une interface de saisir un code Postal (en JTextField) et une fois celui-ci saisit, fait afficher automatiquement la ville correspondante dans un JTextField.

J'ai aucune idée de comment cela peut fonctionner et si c'est possible.

Pouvez-vous me renseigner sur le sujet?

Merci d'avance pour vos réponses.

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
7 déc. 2018 à 23:57
Bonjour,

Tu peux ajouter un CaretListener au JTextField de code postal, qui va déclencher une action à chaque fois que sa valeur change. À ce moment là, tu récupères le code postal, tu en déduis la ville, et tu modifies la valeur du second champ en conséquence.

Voir How to Write a Caret Listener

Remarque : en France plusieurs villes peuvent avoir le même code postal (notamment les petits villages), il serait donc pertinent que le deuxième composant soit plutôt une JComboBox.
0
guewen56 Messages postés 34 Date d'inscription jeudi 29 novembre 2018 Statut Membre Dernière intervention 2 janvier 2021
8 déc. 2018 à 11:42
Bonjour,

Merci KX pour ta réponse.

Je vais tester cette solution.
0
guewen56 Messages postés 34 Date d'inscription jeudi 29 novembre 2018 Statut Membre Dernière intervention 2 janvier 2021
8 déc. 2018 à 17:21
Bonjour,

J'ai trouvé une alternative au CaretListener pendant mes recherche et qui fonctionne :

         JTcp.getDocument().addDocumentListener(new DocumentListener() {
     	    private void updateData() {
     	        // mise à jour de l'attribut data
     	        data = JTcp.getText();
     	    }
     	 
     	    @Override
     	    public void changedUpdate(DocumentEvent e) {}
     	 
     	    @Override
     	    public void insertUpdate(DocumentEvent e) {
     	        // mise a jour quand du texte est inséré dans le champs
     	        updateData();
     	        
     	    }
     	 
     	    @Override
     	    public void removeUpdate(DocumentEvent e)  {
     	        // mise a jour quand du texte est supprimé dans le champs
     	        updateData();
     	    }
     	 
     	});


Merci pour les renseignements.
0