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 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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 a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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 a aidé 106 internautes ce mois-ci

zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Dernière intervention
14 mars 2014
-
ok!! merci pour ton aide!!! ça marche
cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
Ok, tu peux passer le sujet en résolu stp ?
Commenter la réponse de cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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
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
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
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
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
Pourquoi tu me donnes ce code ?
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Dernière intervention
14 mars 2014
-
non!! ce pour les autres
cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
ok
Commenter la réponse de zeddman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.