Affichage de la somme des colonnes d'un jTable dans la dernière colonne

Résolu
Beberto56 Messages postés 119 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 22 décembre 2008 - 21 mai 2008 à 14:14
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 21 mai 2008 à 19:18
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

amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 4
21 mai 2008 à 14:38
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 %
3
amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 4
21 mai 2008 à 16:07
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 %
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
21 mai 2008 à 19:18
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();
}
3
Beberto56 Messages postés 119 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 22 décembre 2008
21 mai 2008 à 15:37
Ouai sa va,

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

++.

Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Beberto56 Messages postés 119 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 22 décembre 2008
21 mai 2008 à 16:00
Re amine,

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

Merci++
0
Beberto56 Messages postés 119 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 22 décembre 2008
21 mai 2008 à 16:15
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.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
21 mai 2008 à 16:48
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();
// ...
0
Beberto56 Messages postés 119 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 22 décembre 2008
21 mai 2008 à 17:05
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
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
21 mai 2008 à 17:22
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();
}
0
Rejoignez-nous