JTable et setValueAt [Résolu]

Messages postés
9
Date d'inscription
mardi 26 octobre 2004
Dernière intervention
18 mai 2005
- - Dernière réponse : anbanb
Messages postés
9
Date d'inscription
mardi 26 octobre 2004
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
174
Date d'inscription
lundi 23 septembre 2002
Dernière intervention
6 avril 2011
3
Merci
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

Merci JBAware 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de JBAware
Messages postés
174
Date d'inscription
lundi 23 septembre 2002
Dernière intervention
6 avril 2011
0
Merci
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
Commenter la réponse de JBAware
Messages postés
94
Date d'inscription
samedi 22 février 2003
Dernière intervention
27 juin 2006
0
Merci
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 !! ********/
Commenter la réponse de Sensei01
Messages postés
9
Date d'inscription
mardi 26 octobre 2004
Dernière intervention
18 mai 2005
0
Merci
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...
Commenter la réponse de anbanb
Messages postés
174
Date d'inscription
lundi 23 septembre 2002
Dernière intervention
6 avril 2011
0
Merci
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
Commenter la réponse de JBAware
Messages postés
9
Date d'inscription
mardi 26 octobre 2004
Dernière intervention
18 mai 2005
0
Merci
merci a toi pour ton aide précisieuse.
tout marche désormais.
@ +
Commenter la réponse de anbanb

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.