Bonjour à tous,
sur un petit programme qui se propose d'afficher des images provenant d'un répertoire, j'ai installé deux boutons 'précédent' et 'suivant' dont l'action, si elle est évidente, revient au début ou à la fin du répertoire quand on atteint les limites. Le bouton suivant ne pose pas de problème, mais le 'précédent' bloque. voici le bout de code (c'est peut-être pas d'une grande ingéniosité, et c'est peut-être même "sale" mais bon..je suis autodidacte...mais aussi ouvert à toutes améliorations)
En fait, j'arrive à afficher le dernier fichier en faisant 'precedent', mais après ça bloque, je ne peux plus remonter encore (mais je peux toujours avancer)..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public void listeRepertoire (File repertoire) { // ces six premières lignes ont été chopées sur la faq, merci à Clément Cunin if (repertoire.isDirectory) { File [] list = repertoire.listFiles(extension); //'extension' est un filtre pour ne lire que des images if (list!=null) { for (int i =0; i<list.length;i++) { list.repertoire (list[i]); //c'est là que j'interviens : if (list[i].equals(f)) { if(i+1 ==list.length) { fichierSuivant=list[0]; break; } else { fichierSuivant=list[i+1]; } //ce bloc fonctionne //à partir de là, ça déconne : if (i==0) { fichierPrecedent=list[list.length-1]; break. } else { fichierPrecedent=list[i-1]; } } } } } }
Je pense que le problème est lié à la boucle 'for' et à l'incrémentation de 'i', mais je ne comprends pas ...
Si vous avez un peu de temps pour me répondre, merci beaucoup...
Partager