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

Beberto56 119 Messages postés mardi 8 avril 2008Date d'inscription 22 décembre 2008 Dernière intervention - 21 mai 2008 à 14:14 - Dernière réponse : Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention
- 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.
Afficher la suite 

9 réponses

Répondre au sujet
amine1234Z 134 Messages postés samedi 26 mai 2007Date d'inscription 31 mai 2010 Dernière intervention - 21 mai 2008 à 14:38
+3
Utile
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 %
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de amine1234Z
amine1234Z 134 Messages postés samedi 26 mai 2007Date d'inscription 31 mai 2010 Dernière intervention - 21 mai 2008 à 16:07
+3
Utile
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 %
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de amine1234Z
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 21 mai 2008 à 19:18
+3
Utile
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();
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Ombitious_Developper
Beberto56 119 Messages postés mardi 8 avril 2008Date d'inscription 22 décembre 2008 Dernière intervention - 21 mai 2008 à 15:37
0
Utile
Ouai sa va,

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

++.

Julien.
Commenter la réponse de Beberto56
Beberto56 119 Messages postés mardi 8 avril 2008Date d'inscription 22 décembre 2008 Dernière intervention - 21 mai 2008 à 16:00
0
Utile
Re amine,

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

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.