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

Signaler
-
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
Bonjour,

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

Merci

6 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
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"});
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
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();
            }
    }
     
   }


}
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
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
Ok, tu peux passer le sujet en résolu stp ?
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
J'ai édité ta question qui ne voulait rien dire et dans laquelle il manquait un "bonjour" et un "merci"
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

ok!! merci bcp
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

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
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

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) {
            }
        }
    }
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
Pourquoi tu me donnes ce code ?
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

non!! ce pour les autres
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
ok