Remplire un jTable a partir d'un ResultSet

Résolu
Signaler
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 mars 2008
-
Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
-
Bonjour

Je voudrait s'avoir  comment remplire un jTable a partire d'un ResultSet

Salutations

4 réponses

Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
1
Effectivement, celà peut poser problème utilise un Vector tu le déclare et l'initialise avant ta boucle et dans la boucle tu fait monvector.add(mon object) parcontre sa ne sera pa en 2 dimension. Apres dans ton model tu pourras ajuster ton affichage.  (Si tu veux des exemples de models pour JTable j'en ai pas mal mais bon tu en trouvera sur le net)
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 mars 2008

j'ai essayer le code en bas ,le probléme c'est que ca m'affiche qu'une seule ligne et sans les nom des colonnes ?

j'ai déclaré les colonnes ici

    String[] columnNames = {"Date",
                            "Issue",
                            "Statut"};


 


ensuite je remplie le jTable a partire du résultat de la requete  

        try {
        connec = getConnec();
        Statement reqCDS = connec.createStatement();
        ResultSet Result = reqCDS.executeQuery(
             "SELECT * FROM task  where n_tele ='70901661' ");




        while(Result.next()) {
            Object[][] data = { {(Result.getString("RDATE")), (Result.getString("PROB")),
                              (Result.getString("STATUS"))}


            };


           




            JTable table = new JTable(data, columnNames);
            table.setBounds(new Rectangle(37, 197, 486, 160));
         
           this.add(table);


        }


       Result.close();
    }
    catch(Throwable exception)
    {
    JOptionPane.showMessageDialog(null, "Erreur : "+exception);
    }
     
Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
1
Salut, je te conseille de créer ton propre model de données pour ta table.
En gros un model, c'est une classe qui organise les données. Tu pourras trouver beaucoup d'exemple là dedans.
tu crées une classe qui hérite de ça.

extends

AbstractTableModel

donc dans un model de Table, tu vas devoir reécrire un certain nombre de méthodes
 donc par exemple voiçi la méthode qui donne les nom des colonnes.

public

String getColumnName(
int columnIndex) {

//retourne le nom de la colonneString colName=

"";

if (columnIndex< =getColumnCount())colName=

columnNames.elementAt(columnIndex);

return colName;

}

//getColumnName
Tu verras que utiliser un Tablemodel est bien plus pratique et permet de bien controler sa JTable.
 
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

C'est l'adresse de la doc Java il y a un tutorial qui est pas mal regarde les exemples.

pour ce qui est du problème de la seule ligne. Es-tu sûr que ta requête SELECT * FROM task  where n_tele ='70901661' te renvoi plusieurs résultats ?
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 mars 2008

Bonjour

merci beaucoup de mavaoir orienté , je vais essyer de crée mon propre model ,sinon pour la requete elle renvoie plusieures  enregistrements!! peut etre le fite de déclaré le jTable dans la boucle ce qui fait il ecrase a chaque fois ?