Bonjour

Jai créé une application qui récupére des données provenant de ma base de données et les affiche dans une JTable. J'essaie maintenant d'ajouter un Checkbox dans la 1ère colonne de mon tableau, mais je reçois ce message d'erreur:

le nombre de colonne est: 4
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at gesstock.PanListerUser.actualiser(PanListerUser.java:117)
at gesstock.PanListerUser.<init>(PanListerUser.java:61)
at gesstock.Accueil.<init>(Accueil.java:27)
at gesstock.Main.main(Main.java:17)
Java Result: 1
Apparemment j'essaie de lire une case qui n'a pas été définie dans mon tableau

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
String requete = null;
               requete="select * from user ";
                         //Création d'un objet Statement
                           long start = System.currentTimeMillis();
                           state = con.createStatement();
                         //L'objet ResultSet contient le résultat de la requête SQL
                           res = state.executeQuery(requete);
                         //On récupère les MetaData
                           resultMeta = res.getMetaData();
 
                           //On récupère les meta afin de récupérer le nom des colonnes
                            ResultSetMetaData meta = res.getMetaData();
                            int nbrCol = meta.getColumnCount();
                            System.out.println("le nombre de colonne est: "+nbrCol);
                            //On initialise un tableau d'Object pour les en-têtes du tableau
                            Object[] column = new Object[nbrCol+1];
 
                            column[0] = "Case à cocher";
                            for(int i = 1 ; i <= nbrCol; i++)
                            column[i] = meta.getColumnName(i);
 
                            //Petite manipulation pour obtenir le nombre de lignes
                            res.last();
                            int rowCount = res.getRow();
                            Object[][] data = new Object[res.getRow()][nbrCol+1];
                            //On revient au départ
                            res.beforeFirst();
                            int j = 1;
                            //On remplit le tableau d'Object[][]
                            while(res.next()){
 
                            data[0][0] = new Boolean(false);    
 
                            for(int i = 1 ; i <= nbrCol; i++)
                            data[j][i] = res.getObject(i);
                            j++;
                            }
La ligne 117 correspond à celle-ci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 data[j][i] = res.getObject(i);
Merci