Passer une valeur d'un JComboBox à une JTable

Résolu
zeddman - Modifié par cs_Julien39 le 13/03/2014 à 10:10
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
- 13 mars 2014 à 16:51
Bonjour,

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

Merci

6 réponses

cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 10:18
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"});
1
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 12:04
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();
            }
    }
     
   }


}
1
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

13 mars 2014 à 13:21
ok!! merci pour ton aide!!! ça marche
0
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 13:54
Ok, tu peux passer le sujet en résolu stp ?
0
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 10:11
J'ai édité ta question qui ne voulait rien dire et dans laquelle il manquait un "bonjour" et un "merci"
0
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

13 mars 2014 à 11:05
ok!! merci bcp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

Modifié par cs_Julien39 le 13/03/2014 à 11:59
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
0
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

Modifié par cs_Julien39 le 13/03/2014 à 16:51
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) {
            }
        }
    }
0
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 14:48
Pourquoi tu me donnes ce code ?
0
zeddman
Messages postés
8
Date d'inscription
lundi 10 mars 2014
Statut
Membre
Dernière intervention
14 mars 2014

13 mars 2014 à 14:49
non!! ce pour les autres
0
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
13 mars 2014 à 16:51
ok
0