Affichage de la somme des colonnes d'un jTable dans la dernière colonne [Résolu]

Signaler
Messages postés
119
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
22 décembre 2008
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonjour,

je recherche la marche à suivre afin d'afficher dans la dernière colonne de mon jTable la somme des colonnes précédentes sur cet exemple :

colonne1   colonne2   colonne3    colonne4
    1               2               5               =8
    2               9               2               =13

Si quelqu'un peut m'indiquer la marche à suivre ce serais cool.

Merci.

Julien.

9 réponses

Messages postés
134
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
31 mai 2010
4
Salut
est ce que tous va bien ?
voila la solution:

                      int w,total;
                      String c1,c2,c3,c4;
                  w=Table.getRowCount();
                      for(int i=0;i<w;i++){
c1=tableModel.getValueAt( i,0);
c2=tableModel.getValueAt( i,1);
c3=tableModel.getValueAt( i,2);
//--------------
     Integer mon1 = new Integer(c1);    
      int i1 = mon1.intValue();
     Integer mon2 = new Integer(c2);    
      int i2 = mon2.intValue();
     Integer mon3 = new Integer(c3);    
      int i3 = mon3.intValue();
total= i1 + i2 + i3;

String montexte = new String();
montexte =montexte.valueOf(total);
Object toto;
toto=montexte ;
tableModel.setValueAt(toto i,3);
                      }

@+

% Mauvais Sens %
Messages postés
134
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
31 mai 2010
4
Salut

private static DefaultTableModel tableModel;

    tableModel = new DefaultTableModel();
    Table = new JTable(tableModel) {

        private static final long serialVersionUID = 1L;

          public Class getColumnClass(int column) {

 return getValueAt(1, column).getClass();

                       }

    };

    scTable = new JScrollPane(Table);
    tableModel.addTableModelListener(new TableModelListener() {
          public void tableChanged(TableModelEvent evnt) {

          updateDBRow(evnt);

           }

       });

c'est comme ca que je travail
@+

% Mauvais Sens %
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

Un autre détail qui m'a échappé. La méthode getValueAt() est aussi une méthode de la classe JTable. (En fait c'est cette méthode est un raccourcis de la méthode getValueAt() de la classe DefaultTableModel).

Exemple d'utilisation:

try {
      // Calculer la somme de la colonne 4
      int sum = getSum(4);
} catch (NumberFormatException e) {
      // Erreur de cacul: certains données sont non entière
      e.printStackTrace();
}
Messages postés
119
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
22 décembre 2008

Ouai sa va,

je te remerci et je te dis si j'ai un problème.

++.

Julien.
Messages postés
119
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
22 décembre 2008

Re amine,

a quoi correspond tableModel stp car il ne le reconnait pas fo t'il que je le déclare ou ????

Merci++
Messages postés
119
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
22 décembre 2008

re:
 
             int w,total;
            String c1,c2,c3,c4;
            w=table.getRowCount();
            c1=tableModel.getValueAt( i,0);
            c2=tableModel.getValueAt( i,1);
            c3=tableModel.getValueAt( i,2);

            Integer mon1 = new Integer(c1);    
            int i1 = mon1.intValue();
            Integer mon2 = new Integer(c2);    
            int i2 = mon2.intValue();
            Integer mon3 = new Integer(c3);    
            int i3 = mon3.intValue();
            total= i1 + i2 + i3;

            String montexte = new String();
            montexte =montexte.valueOf(total);
            Object toto;
            toto=montexte ;
            tableModel.setValueAt(toto i,3);

Pour les partie en rouge il me demande si je veux créer une class ou un field tableModel.
Voila plus précisément les erreurs qu'il me renvoi.

Dois je faire une instance un import ou???

NB: mon tableau est noté table.

Merki.

julien.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut Julien:

Je vois bien que l'éditeur de NetBeans ne te laisse pas liberté de modifier le code directement.

Tu dois procèder ainsi:

DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
// ...
Messages postés
119
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
22 décembre 2008

Salut Ombitious,

j'ai fais sa et je n'ai plus de pb avec le tableModel, mais il gueule pour la méthode getValueAt et il me renvoi:

getValueAt (int, int) in import javax.swing.table.DefaultTableModel cannot be applied to (i, int)

pour les trois lignes et il me met un autre probleme a cet endroit:   modele.setValueAt(montexte i,3); (comprend pas ce qu'il y a entre parenthèse)

donc c la galère arf^^;

Julien
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

Peut être que tu dois faire les conversions nécessaires:

public int getSum(int columnIndex) throws NumberFormatException {
    int sum = 0;
    if (columnIndex >= 0 && columnIndex < table.getColumnCount()) {
         DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
         for (int row = 0; row < table.getRowCount(); ++row) {
                int value = Integer.paseInt((String)table.getValueAt(row, columnIndex));
                sum += value;
         }
    }else {
       throw new IndexOutOfBoundsException();
    }
    return sum;
}

Exemple d'utilisation:

try {
      // Calculer la somme de la colonne 4
      getSum(4);
} catch (NumberFormatException e) {
      // Erreur de cacul: certains données sont non entière
      e.printStackTrace();
}