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

Composants Java Discussion :

Récuperer un élément sélectionné dans un JTable sur combobox


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de ComorienKM
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2017
    Messages : 13
    Par défaut Récuperer un élément sélectionné dans un JTable sur combobox
    Bonjour à tous et à toutes!

    J’espère que tout le monde va bien par ici, voilà je suis nouveau ici et amateur de la programmation. Actuellement je suis sur un projet de gestion de personnel avec Java et Mysql. J'ai un problème depuis environs 3 jours. Je n'arrive pas à récupérer la donnée sélectionnée sur ma Jtable pour l'afficher dans un combobox. Par contre sur les textfield ça marche bien mais avec le combo ça ne marche pas.

    Voici le code :
    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
    30
    31
    private void deplace(int i) {
            try {
                txtid.setText(model.getValueAt(i, 0).toString());
                txtnm.setText(model.getValueAt(i, 1).toString());
                txtpr.setText(model.getValueAt(i, 2).toString());
                txtda.setText(model.getValueAt(i, 3).toString());
                txtad.setText(model.getValueAt(i, 4).toString());
                txttel.setText(model.getValueAt(i, 5).toString());
                txtstat.setSelectedItem(model.getValueAt(i, 6).toString());
                txtfnct.setSelectedItem(model.getValueAt(i, 7).toString());
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erreur de deplacement" + e.getLocalizedMessage());
            }
     
        }
     
     
        private void afficher() {
            try {
                stmt = con.obtenirconnection().createStatement();
                rs = stmt.executeQuery("SELECT * from profil,fonction,statut where fonction.idFonction=profil.idFonction and statut.idStatut=profil.idStatut");
                while (rs.next()) {
                    model.addRow(new Object[]{rs.getString("identifiant"), rs.getString("nom"), rs.getString("prenom"), rs.getString("sexe"),
                        rs.getString("adresse"), rs.getString("tel"), rs.getString("nomFonction"), rs.getString("nomStatut")});
                }
                table.setModel(model);
            } catch (SQLException e) {
                System.err.println(e);
            }
     
        }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Les combos en question (je suppose que c'est txtstat et txtfnct ?), elles manipulent bien des données de type String ? La valeur sélectionnée existe-elle bien dans le modèle de la combo ?
    Comment les déclares-tu ?

    Il y a une chose un peu bizarre qui pourrait être une piste : à priori, je dirais que txtstat c'est pour le statut et txtfnct pour la fonction. Or ces données ont pour index (dans le modèle de la JTable) 6 pour la fonction et 7 pour le statut. Et l'affectation est dans l'autre sens. Je m'attendrais en toute logique à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txtfnct.setSelectedItem(model.getValueAt(i, 6).toString());
    txtstat.setSelectedItem(model.getValueAt(i, 7).toString());
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti Avatar de ComorienKM
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2017
    Messages : 13
    Par défaut
    Les combos en question (je suppose que c'est txtstat et txtfnct ?), elles manipulent bien des données de type String ? La valeur sélectionnée existe-elle bien dans le modèle de la combo ?
    Comment les déclares-tu ?
    Oui C bien ça! Elle manipule des donnés de types String(Deja enregistré sur la BDD)!! Une fois lancée, les comboBox affichent les differentes fonction existantes dans la base de donéé(grace a SELECT ).Le probleme C'est quan je selectionne sur Jtable ,les combo n'affichent pas les donnés selectionnés.
    y a une chose un peu bizarre qui pourrait être une piste : à priori, je dirais que txtstat c'est pour le statut et txtfnct pour la fonction. Or ces données ont pour index (dans le modèle de la JTable) 6 pour la fonction et 7 pour le statut
    Merci de me l'avoire rappeller! mais une fois changer ça marche toujours pas!!!
    ++Mrci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu ne me montres pas comment tu déclares ces JComboBox !

    Comme suit ou autrement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JComboBox<String> txtfnct = new JCombBox<>();
    Au niveau des valeurs, dans la combo, je suppose que tu affiches des libellés. Mais dans la jtable, sont-ce bien des libellés pour le statut et la fonction, ou sont-ce des identifiants ?

    A la limite, me montrer tout le code me permettrait d'y voir plus clair, d'avoir une vue d'ensemble, de pointer du doigt le problème, plutôt que d'énumérer les milliers de raisons pour lesquelles ça pourrait ne pas fonctionner.

    Une autre voie à explorer est celle de la multi-instance (l'instance de combo visible dans l'interface et l'instance modifiée lors de la sélection ne sont pas les mêmes).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti Avatar de ComorienKM
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2017
    Messages : 13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JComboBox<String> txtfnct = new JCombBox<>();
    je n'ai pas declarer les combo, je les ai juste attribuer les nom txtfnct et txtstat

    Au niveau des valeurs, dans la combo, je suppose que tu affiches des libellés. Mais dans la jtable, sont-ce bien des libellés pour le statut et la fonction, ou sont-ce des identifiants ?
    Au niveau des combo j'affiche des bien des libellés se trouvant sur une de mes tables SQL,et oui dans la Jtable ce sont des libellés pour statut et fonction.

    A la limite, me montrer tout le code me permettrait d'y voir plus clair, d'avoir une vue d'ensemble, de pointer du doigt le problème, plutôt que d'énumérer les milliers de raisons pour lesquelles ça pourrait ne pas fonctionner.

    Une autre voie à explorer est celle de la multi-instance (l'instance de combo visible dans l'interface et l'instance modifiée lors de la sélection ne sont pas les mêmes).
    Voici le code pour recuperer sur combo(txtstat),pour chaque combo g utilse une fonction specifique....!!
    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
     private void comboS() {
            //RECUPERATION SUR COMBO
            try {
                String sql = "SELECT  nomStatut FROM statut";
     
                rs = stmt.executeQuery(sql);
     
                while (rs.next()) {
                    //String fonction = rs.getString("nomFonction");
                    String statut = rs.getString("nomStatut");
                    txtstat.addItem(statut);
                    //txtfnct.addItem(fonction);
                }
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, e);
            }
     
        }
    Voici le code pour le deplacement sur Jtable(selection des libellés)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       private void tableMouseClicked(java.awt.event.MouseEvent evt) {                                   
            try {
                int i = table.getSelectedRow();
     
                deplace(i);
     
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erreur de Deplacement" + e.getLocalizedMessage());
            }
        }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ComorienKM Voir le message
    je n'ai pas declarer les combo, je les ai juste attribuer les nom txtfnct et txtstat
    Tu les as forcément déclarées : il est impossible d'utiliser des variables non déclarées car il est impossible d'utiliser des variables non typées et que le type est donné à la déclaration.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2017, 00h21
  2. Réponses: 2
    Dernier message: 06/06/2008, 20h32
  3. [Débutant] copier l'élément sélectionner dans une liste
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/04/2007, 21h49
  4. Récupérer l'élément sélectionné dans un GtkTree
    Par slasher-fun dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 07/03/2007, 17h33

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