IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

ComboxBox récupérer id


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut ComboxBox récupérer id
    Bonjour,

    Dans mon application j'ai une jComboBox avec environ une dizaine de résultats provenant d'une bdd. J'aimerais pouvoir récupérer l'id (en lien avec la bdd) correspondant au choix de l'utilisateur. J'ai essayé getSelectedIndex mais ce get me renvoi la position dans la jComboBox et je ne sais pas quoi faire avec ...

    Auriez-vous une piste afin que j'avance ?

    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Par défaut
    Bonjour,
    Peux-tu nous montrer le code correspondant à ta Combobox (remplissage des données et récupération du résultat sélectionné) ?

    En fait il faut que tu inserts des objets dans ta combobox (ceux que tu reçois de ta bdd) et pour obtenir l'id, tu fais un getSelectedItem() que tu pourras caster en un objet correspondant à ta bdd. A ce moment tu fait un getId de ton objet ce qui te permettra de récupérer l'id.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut
    Merci pour la réponse,

    Alors voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Statement stmtTrois = Connexion.getStatement();
                try (ResultSet resTrois = stmtTrois.executeQuery("SELECT libelleModMachine, capaciteTotaleRessource, uniteRessource, libelleRessource FROM MODELE_MACHINE ORDER BY libelleModMachine ASC")) {
                    while (resTrois.next()) {
                        comboBoxModMachine.addItem(resTrois.getString("libelleModMachine") + " | " + resTrois.getString("capaciteTotaleRessource") + " " + resTrois.getString("uniteRessource") + " " + resTrois.getString("libelleRessource"));
                    }
                }
                comboBoxModMachine.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Par défaut
    ok en fait dans ta méthode addItem tu ajoutes pour le moment une chaîne de caractères, donc tu n'a aucun moyen de récupérer l'id.

    Je te propose de créer un objet ModeleMachine qui contiendra les informations de ton ModeleMachine (id,libelle etc...). Lorsque tu feras un getSelectedItem(), tu récupéreras un objet de type ModeleMachine et tu pourras obtenir l'id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    public class ModeleMachine {
     
    	private Long id;
    	private String libelleModMachine;
    	private String capaciteTotalRessource;
    	private String uniteRessource;
    	private String libelleRessource;
     
    	public ModeleMachine(Long id, String libelleModMachine, String capaciteTotalRessource, String uniteRessource, String libelleRessource) {
    		this.id = id;
    		this.libelleModMachine = libelleModMachine;
    		this.capaciteTotalRessource = capaciteTotalRessource;
    		this.uniteRessource = uniteRessource;
    		this.libelleRessource = libelleRessource;
    	}
     
    	public Long getId() {
    		return id;
    	}
     
    	/**
             * La méthode toString sera utilisée pour afficher le texte dans la combobox
             */
    	public String toString() {
    		return libelleModMachine + " | " + capaciteTotalRessource + " | " + uniteRessource + "| " + libelleRessource;
    	}
     
    }
    Tu peux générer tous les getters et setters et également la méthode equals qui sera sans doute utile dans le cas d'une comparaison.
    Dans ta requête sql il faut que tu sélectionnes l'id, et pour chaque tour de boucle il faut créer un objet ModeleMachine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try (ResultSet resTrois = stmtTrois.executeQuery("SELECT id, libelleModMachine, capaciteTotaleRessource, uniteRessource, libelleRessource FROM MODELE_MACHINE ORDER BY libelleModMachine ASC")) {
                    while (resTrois.next()) {
                        comboBoxModMachine.addItem(new ModeleMachine(Long.parseLong(resTrois.getString("id")),resTrois.getString("libelleModMachine"),resTrois.getString("capaciteTotaleRessource")...);
                    }
                }
    ensuite pour récupérer l'id tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ModeleMachine modeleMachineSelected = (ModeleMachine)comboBoxModMachine.getSelectedItem();
    modeleMachineSelected.getId();
    Je pense que ça devrais fonctionner, par contre j'ai supposé que ton champ en base se nommait id, à toi de modifier le code si nécessaire !!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut
    En effet ça fonctionne bien, c'est super sympa j'en attendais pas autant ! je vais pouvoir utiliser cet exemple pour d'autres cas.

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. Réponses: 11
    Dernier message: 23/07/2002, 14h33
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo