Précédent   Forum du club des développeurs et IT Pro > Java > EDI et OUTILS pour Java > NetBeans
NetBeans Forum d'entraide NetBeans. Avant de poster -> Ressources NetBeans - La F.A.Q NetBeans - Tutoriels NetBeans
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/12/2012, 14h55   #1
Frantz2501
Invité régulier
 
Homme
Étudiant
Inscription : février 2012
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : février 2012
Messages : 29
Points : 9
Points : 9
Par défaut Afficher un requête SQL via JTable

Comme beaucoup, je cherche à afficher le résultat d'une requete SQL.

Premier problème : quelle méthode appeler pour fournir un model à la JTable qui a été déjà créée?

Par ailleurs, j'ai beau faire, ça n'affiche rien. Les tableaux se remplissent bien, c'est juste le passage vers la JTable qui bloque.

Si vous avez des idées, je prends!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 try{
        String query="SELECT * FROM registre";
        ResultSet Rs=con.connect(query);
        ResultSetMetaData RsMeta = con.getMeta(Rs);
 
        int ncol = 0;        
        int nlignes = 0;
 
        ncol = RsMeta.getColumnCount();
        Rs.last();
        nlignes = Rs.getRow();
        String[] v = new String[ncol];
 
        Object[][] tab = new String[nlignes][ncol];
 
        int i=0;
        int k=0;
        Rs.first();
        for(i=0; i<=nlignes-1; i++){
            for(k=1;k<=ncol-1;k++){
                v[k] = RsMeta.getColumnName(k);
                tab[i][k]=Rs.getString(k);
            }            
            }
 
        DefaultTableModel tabl = new DefaultTableModel(tab,v);
 
        this.tableRqt = new JTable(tabl);
        this.getContentPane().add(new JScrollPane(tableRqt), BorderLayout.CENTER);
 
        }catch(Exception e){
            e.printStackTrace();
        }
Frantz2501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 04h33   #2
mouddene
Membre régulier
 
Homme Mido moud
Ensimag
Inscription : octobre 2011
Messages : 57
Détails du profil
Informations personnelles :
Nom : Homme Mido moud
Localisation : Maroc

Informations professionnelles :
Activité : Ensimag
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 57
Points : 97
Points : 97
premier problème ; jtable.setModel(tonModel);
mouddene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 10h06   #3
kalina
Membre actif
 
Avatar de kalina
 
Inscription : avril 2009
Messages : 146
Détails du profil
Informations personnelles :
Localisation : Algérie

Informations forums :
Inscription : avril 2009
Messages : 146
Points : 164
Points : 164
Bonjour,
à la place des tableaux, je te conseille fortement d'utiliser des ArrayList, un pour les noms des colonnes "columNames" par exemple et un autre pour les données "data" par exemple. Tu auras l'avantage de ne pas te casser la tête avec le nombre de lignes retournées et d'avoir un code plus propre!
Ainsi tu feras:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
try{
        String query="SELECT * FROM registre";
//ici il vaut mieux utiliser un Statement directement:
        Statement stmt=con.createStatement();
        ResultSet Rs=stmt.executeQuery(query);
        while(Rs.next()){
        data.add(Rs.getString(k));
}
 
        DefaultTableModel tabl = new DefaultTableModel(columnNames,data);
// ici je pense que tu devrais revoir la manière de déclarer ton jTable 
//parce que  comme l'a dit mouddene il faut faire;
        jtable.setModel(tabl);
..........
 
        }catch(Exception e){
            e.printStackTrace();
        }
Bon courage!
kalina est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h29.


 
 
 
 
Partenaires

Hébergement Web