-
problème de cast!
Bonjour,
J'ai un petit souci de cast je crois, j'ai l'erreur java.lang.ClassCastException!
J'explique un peu le contexte.
J'ai créé une classe MyButton, qui dérive de JButton (normal), et dedans je passe en paramètre un objet Photo (dedans on y trouve le nom de la photo, son chemin, sa taille) et un indice!
A chaque fois que je crée un bouton, je le mets dans une liste (de type ArrayList). Ensuite, faut que je place chaque bouton (présent dans la liste) dans une interface, pour cela j'utilise un GridBagLayout,
contraintes.gridy = 17;
contraintes.gridx = 2;
MyButton button = new MyButton();
button = (MyButton) listPhoto.get(0); // listPhoto, c'est ma liste de bouton!
this.add(button,contraintes);
Le problème, c'est que dans une liste, on a des objets, donc à chaque fois que je prends un objet, je le caste en un bouton de type MyButton, mais c'est là le problème ... C'est là que vient ma faute apparemment! Si qqn peut m'aider ...
Mici.
-
Il faudrait un peu plus de code, car là c'est juste.
Je présume que l'Exception vient de là
Code:
button = (MyButton) listPhoto.get(0);
ClassCastException veut dire que tu veux récupérer un Objet dans une classe dont il n'est pas l'instance. Donc listPhoto ne contient pas de MyButton (au moins à l'indice 0).
-
Tu peux pas caster un object de type photo en un bouton... (si tu met bien des photos dans ton listPhoto)
N'est pas...
-
J'te remercie iuz, tu m'as fait comprendre ma faute. J'explique pour ceux qui tomberont sur le même problème :
Dans la boucle for ci dessous, j'ai deux liste, ma listPhoto et ma listButton, elles sont différentes, or hier, c'était les mêmes, c'est à dire que je ne les avait po différencié, ce qui est absurde de ma part vu que la première list contient mes photos, c'est de celle là où je vais créer mes boutons, et donc la seconde contiendra mes boutons de photos, donc il m'en faut bien deux lists différentes et po une seule!
for (int i=0;i<nbPhoto;i++) {
Photographie photo = new Photographie();
photo = (Photographie) listPhoto.get(i); // je retire la photo n°i de ma list
String chemin = photo.getPath();
listButton.add(new MyButton(i,photo)); // je place mon nouveau bouton créé dans un nouvelle list, la list de bouton cette fois çi
System.out.println("bouton n°"+i+" cree");
} // end for
Mici de m'avoir éclairé : )