Remplire un jTable a partir d'un ResultSet

Résolu
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008 - 13 août 2006 à 12:28
ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 - 27 août 2006 à 19:04
Bonjour

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

Salutations

4 réponses

ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 1
27 août 2006 à 19:04
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)
3
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
14 août 2006 à 17:19
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);
    }
     
0
ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 1
19 août 2006 à 17:42
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 ?
0
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
27 août 2006 à 16:24
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 ?
0
Rejoignez-nous