Probleme sur le codage bouton retour en arriere

Résolu
bmartinkle -  
 bmartinkle -
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

Flog78
 
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
bmartinkle
 
pourquoi image vaut null ?
je ne comprends pas tout, excuse moi
0
Flog78
 
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
bmartinkle
 
ah !!!

newTableau[0] = TabImage[0] c'est plus ça que je dois ecrire non ?
0
Flog78 > bmartinkle
 
oui
0
bmartinkle > bmartinkle
 
c'est bon =) ça marche merci
0
bmartinkle
 
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
bmartinkle
 
j'ai resolu mon problème merci a toi
0