Probleme sur le codage bouton retour en arriere

Résolu/Fermé
bmartinkle - 28 avril 2013 à 20:48
 bmartinkle - 2 mai 2013 à 15:26
Bonjour, je fais un projet informatique de traitement d'image et j'ai un problème pour coder un bouton de retour en arrière (revenir a l'état précédent). Donc je pensais dans un premier temps coder un tableau qui se complète a chaque fois que l'on clique sur un bouton. Un tableau qui dans un premier temps comporte déjà une image (celle de fond de mon application). Ensuite je fais appelle a ma méthode "retour" dans mon actionListener destiné à mon bouton de retour en arrière, cependant lorsque je l'utilise, plus rien ne s'affiche sur mon application... Et je ne comprends pas ce qui ne va pas. Et je dois rendre mon projet la semaine prochaine... Je vous serais donc très reconnaissant si vous arriviez à me débloquer. Voici le code utilisé :


public BufferedImage[] mettre(BufferedImage[] TabImage, BufferedImage Image){

int n = TabImage.length;

if(n == 1){
BufferedImage[] newTableau = new BufferedImage[2];
TabImage[0] = newTableau[0];
newTableau[1]= Image;
TabImage = newTableau;
}

else if (n == 2) {
BufferedImage[] newTableau = new BufferedImage[2];
TabImage[1] = newTableau[0];
newTableau[1]= Image;
TabImage = newTableau;
}
return TabImage;
}



public BufferedImage retour(BufferedImage[] TabImage, BufferedImage image) {
int n = TabImage.length;
if(n==1){
}
else if (n == 2){
image = TabImage[0];

}
return image;
}



Merci encore énormément


A voir également:

2 réponses

Salut,
Je pense que cette ligne là est inutile : "TabImage[1] = newTableau[0];"
car 2 ligne après tu remplace TabImage par newTableau

Sinon a la fin de ta fonctione "mettre" le tableau TabImage a une valeur nulle en case 0 (c'est vide) car tu en met rien dans "newTableau[0];"
et il a une image en case 1, donc après dans la fonction retour, quand tu fait : "image = TabImage[0];"
image vaut null
1
pourquoi image vaut null ?
je ne comprends pas tout, excuse moi
0
Je vais essayer de t'expliquer plus clairement:

BufferedImage[] newTableau = new BufferedImage[2]; // ici tu crée un tableau de 2 cases, le tableau est vide donc les 2 cases : 0 et 1 sont vide, ce qui est normal.

TabImage[0] = newTableau[0]; // dans la case 0 tu met le contenu de la case 0 de newTableau c'est à dire rien du tout puisque newTableau est vide car tu n'a rien mis dedans.

newTableau[1]= Image; // dans la case 1 tu met une image (donc la case 1 est pleine et la case 0 est toujours vide).

TabImage = newTableau; // tu met le contenu de newTableau dans TabImage

dans la fonction retour :
image = TabImage[0]; // ton image prend la valeur de la case 0 mais celle ci est toujours vide puisque tu n'a jamais rien mis dedans.
1
ah !!!

newTableau[0] = TabImage[0] c'est plus ça que je dois ecrire non ?
0
Flog78 > bmartinkle
2 mai 2013 à 14:52
oui
0
bmartinkle > bmartinkle
2 mai 2013 à 14:54
c'est bon =) ça marche merci
0
vous savez ce que je peux mettre dans
if(n==1){

}
de la fonction "retour" pour dire que rien ne se passe ? Parce que lorsque je clique sur le bouton dans ce cas; l'image disparait...
0
j'ai resolu mon problème merci a toi
0