Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008
-
4 juin 2008 à 15:37
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008
-
5 juin 2008 à 11:30
Bonjour,
j'ai instancié un tableau en java dans l'API swing Netbeans, et je voudrais totaliser dans la 4ième colonnes les sommes présentes dans les trois premières colonnes.
Voici le code que j'ai pour l'instant mais je n'ai rien qui apparaît dans la 4 colonne lorsque je saisie mes 3 premières colonnes:
public static DefaultTableModel modele = new DefaultTableModel();
public void run()
{
new Main().setVisible(true);
modele = (DefaultTableModel)table.getModel();
int w,total; String c1 null,c2 null,c3 = null;
w=table.getRowCount();
int i;
for(i=0;i<w;i++)
{
c1=(String) modele.getValueAt( i,0);
c2=(String) modele.getValueAt( i,1);
c3=(String) modele.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;
nosferaltu0
Messages postés36Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 6 juin 2008 5 juin 2008 à 11:15
T'aurais pas inversé colonne et ligne par hazard?
exemple de parcours de tableau en faisant la somme des COLONNE-1 première colonne et en mettant le résultat dans la dernière.
int[][] tab = new int[LICNE][COLONNE];
int total;
int j;
remplirTableau(tab);
for(int i=0;i<LIGNE;i++){
total=0;
for(j=0;i<COLONNE-1;j++){
total+=tab[i][j];
}
tab [i][j] = total;
}
nosferaltu0
Messages postés36Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 6 juin 2008 4 juin 2008 à 16:22
Le probleme c'est que quand tu écris modele.setValueAt(Total,i,3); ton i vaut w.
Pour éviter ce genre de probleme java t'autorise à écrire for(int i=0;i<w;i++){}.
nosferaltu0
Messages postés36Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 6 juin 2008 4 juin 2008 à 16:57
J'avais lu rapidement. Effectivement il ne faut pas que tu fasse for(int i=0...) mais l'erreur est bien au niveau du i=w.
public void run()
{
new Main().setVisible(true);
modele = (DefaultTableModel)table.getModel();
int w,total; String c1 null,c2 null,c3 = null;
w=table.getRowCount();
int i;
for(i=0;i<w-1;i++) //On compte à partir de 0 donc la dernière ligne c'est w-1. Donc i doit valoir w-1.
{
c1=(String) modele.getValueAt( i,0);
c2=(String) modele.getValueAt( i,1);
c3=(String) modele.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;
System.err.println("i1="+i1+" i2="+i2+" i3="+i3+" total="+total+" i="+i); //si il y a toujours des erreurs, que renvoie cette ligne?
modele.setValueAt(total+"",i,3);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008 5 juin 2008 à 09:45
Re,
en fait le probleme vient de ma boucle for sa déconne trop elle ne passe pas même pas la valeur de la cellule 3 donc???
est ce que tu peut faire un petit tableau de ton coté a 4 colonnes (avec total des 3 première dans la dernière) et me mettre ton code si il fonctionne que je compare.
Parce que même en debug je pige pas trop les boucles encore.