Probleme d'avoir le total de la colonne de jtable

Manix - Modifié le 12 févr. 2022 à 20:08
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 28 févr. 2022 à 10:40
Bonjour, j'ai travail sur la gestion de la caisse, j'aimerai avoir la somme ou le total de la colonne solde de mon JTable mais jai ne y arrive pas.
voici l'erreur qu'on m'affiche:
 Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6 >= 6
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2496)
at javax.swing.JTable.getValueAt(JTable.java:2638)
at lagestion_sdm.T_CAISSE.calculSomme(T_CAISSE.java:404)
at lagestion_sdm.T_CAISSE.totActionPerformed(T_CAISSE.java:1000)
at lagestion_sdm.T_CAISSE.access$300(T_CAISSE.java:18)
at lagestion_sdm.T_CAISSE$5.actionPerformed(T_CAISSE.java:611)

voici les codes du bouton total:

private void totActionPerformed(java.awt.event.ActionEvent evt) {                                    
      DefaultTableModel dtm=(DefaultTableModel)tble.getModel();
      String[] som={"","SOMME : ",calculSomme()+""};
      dtm.addRow(som);

}

voici les proprietés de mon JTable:

model.addColumn("NUMERO");
model.addColumn("date");
model.addColumn("libelle");
model.addColumn("CREDIT");
model.addColumn("DEBIT");
model.addColumn("SOLDE");

Aidez moi svp.

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
12 févr. 2022 à 23:36
Bonjour,

Ton problème n'est pas dans le code que tu nous as mis, il faut apprendre à lire une stack d'erreur, il y a plein d'informations utiles.

at javax.swing.JTable.getValueAt(JTable.java:2638)
at lagestion_sdm.T_CAISSE.calculSomme(T_CAISSE.java:404)

Je traduis : dans la méthode calculSomme ligne 404 tu fais un getValueAt

java.lang.ArrayIndexOutOfBoundsException: 6 >= 6

Ta table contient 6 éléments, numérotés de 0 à 5, mais tu essaies d'accéder au numéro 6, qui n'existe pas.
0
Merci bcp Monsieur KX pour votre reponse mais je ne arrive pas a me retrouver, svp qu'est ce que je peut ajouter dans la méthode calculsomme pour que sa marche: les codes sont la:
*
int  calculSomme(){

        int som=0;
        int nbLign=tble.getRowCount();
        for(int i=0; i<nbLign; i++){
            int solde=Integer.getInteger(tble.getValueAt(i, 5).toString());
            som= som+solde;
        }
        return som;
    }

Aide-moi Svp.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 févr. 2022 à 10:40
Salut,

Il y a de très fortes chances que ton pb vienne du '5' dans la ligne:
int solde=Integer.getInteger(tble.getValueAt(i, 5).toString());


Le 5 est le 6ieme élément donc colle avec l'exception que tu as.

0
Rejoignez-nous