JTable et setValueAt

Résolu
anbanb Messages postés 9 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 18 mai 2005 - 10 mai 2005 à 15:58
anbanb Messages postés 9 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 18 mai 2005 - 13 mai 2005 à 19:33
Bonjour a tous je suis en train de créer une jtable mais j ai quelques soucis au niveau de la methode setvalueat .

public int getColumnCount() {
return colonnes.size();
}

public int getRowCount() {
return donnees.size()/getColumnCount();
}

public String getColumnName(int columnIndex) {
String colName="";
if (columnIndex<=getColumnCount())
colName=(String)colonnes.elementAt(columnIndex);
return colName;
}

public Class getColumnClass(int columnIndex){
return String.class;
}

public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}

public Object getValueAt(int rowIndex, int columnIndex) {

return (String)donnees.elementAt(
(rowIndex*getColumnCount())+columnIndex);
}

public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
///////////////le probleme se situe ici
j ai mis ((Vector)donnees.elementAt(rowIndex)).setElementAt(aValue, columnIndex);
mais cela me crée des erreurs alors que mettre????
//////////////////////////////////
fireTableCellUpdated(rowIndex, columnIndex);
}
en vous remerciant d'avance

6 réponses

JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
12 mai 2005 à 10:44
Salut si donnée est un Vecteur, voici ton erreur :

((Vector)donnees.elementAt(rowIndex)).setElementAt(aValue, columnIndex);

Voici ce que fait la partie en Gras :
La méthode elementAt(int) te renvoi un Objet que tu cast en Vector. Or d'après ce que tu dis donnée ne contient que des String. Sur cet objet casté en Vector tu applique la méthode setElementAt(Object, int).

1- pourquoi ca compile ?
Parceque ca pourrait etre bon si donnée était un vector contenant lui méme des Vectors eux mêmes contenant des String.

2- Pourquoi ca plante?
Parceque donnée ne contient pas des Vectors mais des Strings.

donc voici ce que tu dois mettre dans ta méthode ( ce que sensei01 te disais a peu près ;) )

donnees.setElementAt( aValue, (rowIndex*getColumnCount())+columnIndex);

JB@WAre
3
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
11 mai 2005 à 01:44
Salut,

Peux tu nous donnér les types de tes variables telles que données ...

En plus l'erreur aussi , ca peux nous aider pour t'aider ;)

JB@WAre
0
Sensei01 Messages postés 94 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 27 juin 2006
11 mai 2005 à 12:36
Sensei01
slt,
c'est normal que ca ne marche pas, tu ne peux pas ecrire :
((Vector)donnees.elementAt(rowIndex)).setElementAt(aValue, columnIndex);

parce que elementAt(int) c pour recuperer un element
ex:
data = donnees.elementAt(5);

ton data est un element simple, genre un String, donc je vois pas trop comment tu peux lui appliquer un setElementAt
(a moins que ton donnees soit un tableau de tableau ????)

de plus, pour l'utilisation du setelementat, j'ecrirais (a vu d'oeil, faut vérifier) :
variable.setElementAt(6) = "coucou"; (par exemple)

bref il faudrait plus de détails !!!!!

/******** Sans audance pas de gloire !! ********/
0
anbanb Messages postés 9 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 18 mai 2005
11 mai 2005 à 22:43
deja merci d avoir repondu
pour preciser mes variables :
protected Vector donnees;
protected Vector colonnes ;
ensuite mon probleme est que je veux pouvoir actualiser les champs de ma jtable
donc je les ai rendu editable puis quand je modifie ces champs et que je vais sur une autre case j obtiens une erreur dans la console.je souhaite pouvoir modifier mes champs
et les recuperer dans un fichier texte mais apparement ma methode setvalueat coince...
0

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

Posez votre question
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
12 mai 2005 à 10:49
Pour sensei01 ;)

tu dis :

de plus, pour l'utilisation du setelementat, j'ecrirais (a vu d'oeil, faut vérifier) :
variable.setElementAt(6) = "coucou"; (par exemple)

Vérifie mais c'est certain que ca marche pas

JB@WAre
0
anbanb Messages postés 9 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 18 mai 2005
13 mai 2005 à 19:33
merci a toi pour ton aide précisieuse.
tout marche désormais.
@ +
0
Rejoignez-nous