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

zeddman - 13 mars 2014 à 10:08 - Dernière réponse : cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention
- 13 mars 2014 à 16:51
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

11 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 10:18
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"});

Merci cs_Julien39 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 12:04
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();
            }
    }
     
   }


}

Merci cs_Julien39 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

zeddman 8 Messages postés lundi 10 mars 2014Date d'inscription 14 mars 2014 Dernière intervention - 13 mars 2014 à 13:21
ok!! merci pour ton aide!!! ça marche
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 13:54
Ok, tu peux passer le sujet en résolu stp ?
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 10:11
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
zeddman 8 Messages postés lundi 10 mars 2014Date d'inscription 14 mars 2014 Dernière intervention - 13 mars 2014 à 11:05
0
Merci
ok!! merci bcp
Commenter la réponse de zeddman
zeddman 8 Messages postés lundi 10 mars 2014Date d'inscription 14 mars 2014 Dernière intervention - Modifié par cs_Julien39 le 13/03/2014 à 11:59
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
zeddman 8 Messages postés lundi 10 mars 2014Date d'inscription 14 mars 2014 Dernière intervention - Modifié par cs_Julien39 le 13/03/2014 à 16:51
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 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 14:48
Pourquoi tu me donnes ce code ?
zeddman 8 Messages postés lundi 10 mars 2014Date d'inscription 14 mars 2014 Dernière intervention - 13 mars 2014 à 14:49
non!! ce pour les autres
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 13 mars 2014 à 16:51
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.