Passer une valeur d'un JComboBox à une JTable [Résolu]

-
Bonjour,

Comment récupérer une valeur dans un combobox et de le l'afficher dans une JTable ?

Merci
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
1
Merci
Salut,

Pour récupérer la valeur dans le JComboBox :
String valeur jcombobox.getSelectedItem().toString();


getSelectedItem retourne un objet que tu peux caster au besoin. Sinon, la méthode toString peut suffire.

Ensuite, pour l'ajouter dans une JTable, c'est un peu plus complexe,
Il faut créer ta table en lui affectant un modèle :
String[] entetes = new String[]{"colonne 1", "colonne 2"};
Object[][] data = new Object[0][entetes.length];
JTable table = new JTable(new DefaultTableModel(data, entetes));

Et ensuite, pour ajouter une ligne :
((DefaultTableModel)(table.getModel())).addRow(new String[]{"s1", "s2"});

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
1
Merci
Déjà :
String valeur = monCombo.getSelectedItem().toString();

Mais ca ne réglera pas le problème.

Dans ton actionListener, tu créé une nouvelle JTable qui n'est ajoutée à aucun composant.

Il faut que tu ajoutes la ligne à la JTable à laquelle tu souhaite ajouter des données.

En gros ton code doit être le suivant :

/* La classe qui définit la fenetre principale */
public class Fenetre {

   public Fenetre(){

       // Quelque part tu créés ta table
       String[] entetes = new String[]{"id", "nom","prenom","matricule"};
      Object[][] personne = new Object[0][entetes.length];
      JTable table_entree = new JTable(new DefaultTableModel(personne, entetes));


      private void monComboActionPerformed(java.awt.event.ActionEvent evt) {
     String valeur =(String)monCombo.getSelectedItem();
           String sql="select * from personne where matricule=?";
           try{
            pst=conn.prepareStatement(sql);
            pst.setString(1,valeur);
            rs=pst.executeQuery();
            if(rs.next()){
            ((DefaultTableModel)(table_entree.getModel())).addRow(new String[]{"id", "nom","prenom","matricule"});
            }
           }
            catch(Exception e){
            e.getMessage();
            }
    }
     
   }


}

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014
-
ok!! merci pour ton aide!!! ça marche
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
Ok, tu peux passer le sujet en résolu stp ?
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
J'ai édité ta question qui ne voulait rien dire et dans laquelle il manquait un "bonjour" et un "merci"
Commenter la réponse de cs_Julien39
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014
0
Merci
ok!! merci bcp
Commenter la réponse de zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014
0
Merci
salut Julien, je fait comme cela mais sa fonctionne pas
 private void monComboActionPerformed(java.awt.event.ActionEvent evt) {
     String valeur =(String)monCombo.getSelectedItem();
           String sql="select * from personne where matricule=?";
           try{
            pst=conn.prepareStatement(sql);
            pst.setString(1,valeur);
            rs=pst.executeQuery();
            if(rs.next()){
            String[] entetes = new String[]{"id", "nom","prenom","matricule"};
            Object[][] personne = new Object[0][entetes.length];
            JTable table_entree = new JTable(new DefaultTableModel(personne, entetes));
            ((DefaultTableModel)(table_entree.getModel())).addRow(new String[]{"id", "nom","prenom","matricule"});
            }
           }
            catch(Exception e){
            e.getMessage();
            }
    }

merci
Commenter la réponse de zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014
0
Merci
Prendre une valeur dans un JcomboBox et de l'envoyer dans un JTable (java netbeans).
 class ItemAction implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            System.out.println("ActionListener : action sur " + monCombo.getSelectedItem());
            String valeur = monCombo.getSelectedItem().toString();
            String sql = "select * from personne where matricule=?";
            //Object[][] personne = new Object[0][columnNames.length];
            try {
                pst = conn.prepareStatement(sql);
                pst.setString(1, valeur);
                rs = pst.executeQuery();
                /*if (rs.next()) {
                    //((DefaultTableModel) (table_entree.getModel())).addRow(new String[]{""+rs.getInt("id"), rs.getString("nom"), rs.getString("prenom"), rs.getString("matricule")});
                    personne[0][0] = rs.getInt("id");
                    personne[0][1] = rs.getString("nom");
                    personne[0][2] = rs.getString("prenom");
                    personne[0][3] = rs.getString("matricule");
                }
                table_entree = new JTable(personne, columnNames);*/
                table_entree.setModel(DbUtils.resultSetToTableModel(rs));
            } catch (Exception ex) {
                ex.getMessage();
            }
        }
    }
-------------------------------------------------------------------
combo=>
private void populateCombobox() {
        try {
            String sql = "SELECT * FROM personne";
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            while (rs.next()) {
                String matricule = rs.getString("matricule");
                monCombo.addItem(matricule);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        } finally {
            try {
                rs.close();
                // pst.close();
            } catch (Exception e) {
            }
        }
    }
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
Pourquoi tu me donnes ce code ?
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014
-
non!! ce pour les autres
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
ok
Commenter la réponse de zeddman