bonjour

j'essaye de realiser une applet qui presente sous forme de vignettes
les images d'un repertoire

Seulement a chaque execution, le resultat est different
et en general, a partir de la 6 ou 7eme execution, les executions suivantes donne le resultat attendu.

voici la methode init() de mon applet
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
 
public void init() {
      ....
 
      for (int i=0; i<pixStrVect.size(); i++)
      {
	pix = getImage(getCodeBase(), pixStrVect.elementAt(i));
	pixWidth = pix.getWidth(this);
	pixHeight = pix.getHeight(this);
 
	if (pixWidth == pixHeight)
	{
		thumbWidth = 101;
		thumbHeight = 101;
	}
	else if (pixWidth > pixHeight)
	{
		thumbWidth = 102;
		thumbHeight = 103;	
	}
	else if (pixWidth < pixHeight) 
	{
		thumbHeight = 104;
		thumbWidth = 105;
	}
 
	thumbWidthVect.add(thumbWidth);
	thumbHeightVect.add(thumbHeight);
	pixWidthVect.add(pixWidth);
	pixHeightVect.add(pixHeight);
 
	thumb = pix.getScaledInstance(thumbWidth, thumbHeight, pix.SCALE_FAST);	
	thumbVect.add(thumb);
        }
}
Dans la methode paint() il y a une boucle sur toutes les images
dans chaque iteration j'affiche entre crochet la taille de l'image initiale
et entre parenthese la taille de la vignette
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
g.drawImage(thumbVect.elementAt(i), x, 0, this);
 
g.drawString(pixStrVect.elementAt(i), x, y);
 
g.drawString(""+i+":["+pixWidthVect.elementAt(i)+","+pixHeightVect.elementAt(i)+"]"+
"("+thumbWidthVect.elementAt(i)+","+thumbHeightVect.elementAt(i)+")",
x,
y);
voila le resultat

execution 1: -1 de partout !!


execution 2: la hauteur 375 de la 1ere image est bonne


execution 4 a 6: comme l'execution 1

execution 7: tout est bon !!


Si quelqu'un peut m'aider je l'en remercie.