cs_manonfire
Messages postés3Date d'inscriptionvendredi 1 avril 2005StatutMembreDernière intervention 4 avril 2005
-
4 avril 2005 à 12:55
cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005
-
4 avril 2005 à 22:49
Bonjour tout le monde !
J'ai une question tte bête (enfin deux).
1) N'étant pas possible à partir d'un objet (classe) autre que celui de la classe qui étand JApplet, de charger une image (Image monImage=getImage(getDocumentBase,"monimage.gif")), je charge donc toutes mes images à partir de cette classe principale.
Ttes mes images sont ensuite transmises aux autres objets par une methode transmettreImage(){return mesImages;} (tableau d'images bien sûr).
Je charge une première fois mon Applet et mes images grâce à Mediatracker..Tout roule !
Je referme mon appli (mon navigateur), la méthode destroy est bien detectée (mais ma JVM reste apparement toujours active, ce qui signifie probablement que tous n'est pas libéré).
Lorsque je rouvre mon applet (sans jamais avoir fermé toutes les fenetres d IE), tout à l'air normale sauf que toutes mes images ne sont plus chargées mais seulement quelques unes !
En traçant les probables erreurs, je me rends compte que certaines images qui sont là st impossibles à charger puisque apparement actuellement utilisées (je rappelle que ma JVM ne s'est pas libéreé à la fermeture de mon Applet).
Q1) Comment utiliser efficacement le Mediatracker. Pour moi, comment, à l'appel de destroy(), mon appli lâche l'affaire et ne s'occupe plus de mes pauvres images (je pense que c'est un pb de Thread) et de Mediatracker car avant que je me décide à mettre des images dans mon Applet, tout fonctionner à merveille.
Q2) Comment à l'appel de destroy, je pourrais tuer toutes les Threads d'un coup ! ? Je suis un criminel mais ou ce st les Threads qui l'emportent ou c'est moi !
Merci pour votre réponse en espérant m'être exprimé le plus clairement possible.
cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005 4 avril 2005 à 22:49
En fait, ce n'est pas le Mediatracker qui pose problème !
Il faut juste à l'appel de la méthode destroy(), flusher toutes les images.
image.flush();
Comme ça, il n'y a plus de soucis : les images aupravant chargées sont vidées et rien ne reste en mémoire pour le prochain appel d'init. Ce n'est donc pas un pb de Thread mais de mémoire !
Az"