Algo d'affichage de vignettes non fiable
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:
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:
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 !!
http://jp.parigny.free.fr/exe1.jpg
execution 2: la hauteur 375 de la 1ere image est bonne
http://jp.parigny.free.fr/exe2.jpg
execution 4 a 6: comme l'execution 1
execution 7: tout est bon !!
http://jp.parigny.free.fr/exe7.jpg
Si quelqu'un peut m'aider je l'en remercie.