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)

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];
          }
        }
      }
    }
  }
}
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)..
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...