IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Mémoire Applet Java


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Mémoire Applet Java
    Dans un applet JAVA, je load une image qui est située sur le poste local...........Je ferme ma fenetre, je change le contenu de l'image, et, quand je ré-appelle mon applet, l'image est la même que la premiere fois que je l'ai loadée....On dirait que JAVA la garde en mémoire et, au lieu de prendre ma nouvelle image, il reprend le contenu de la vielle....

    Est-ce qu'il y a moyen d'effacer sa mémoire :-s

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Comment charges-tu l'image ? Avec quelles methodes ?

  3. #3
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Load de l'image
    Voici mon code...


    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
     Image image;
    	    MediaTracker tracker;
    	    Graphics g;
    	    image = getToolkit().getImage(path);
    	    tracker = new  MediaTracker(this);
    	    tracker.addImage(image,0);
    	    try 
    		{
    		  tracker.waitForID(0);
    		} 
    	    catch (InterruptedException e) {}
    	    if (tracker.statusAll(false) != MediaTracker.COMPLETE) return; 
    	    imageArriere = createImage(imagewidth,imageheight);
    	    g = imageArriere.getGraphics();
    	    g.fillRect(0, 0, imagewidth,imageheight); 
    	    g.drawImage(image,0,0,imagewidth,imageheight,null);
    	    this.repaint();

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Quand tu utilises la methode Toolkit.getImage(String), l'image est conservée par le systeme pendant un temps indeterminé.
    "indeterminé", ca veut dire que tu ne sais pas combien de temps le systeme va garder cette image. En général, tant que la mémoire restante est suffisante, mais ca depend de l'implementation de la methode Toolkit.getImage().
    En d'autre termes, ca veut dire que si tu appelles deux fois Toolkit.getImage(String) avec le meme nom, tu peux obtenir exactement la meme instance de java.awt.Image.

    Dans ton cas, c'est ce qui doit se passer. Lorsque l'applet meurt, les images sont toujours dans le cache de Toolkit.getImage(String).

    Il n'est pas possible de retirer une image de ce cache, mais ce que tu peux faire, c'est libérer les ressources de ton image, avec la méthode Image.flush(). Apres cette appel, c'est comme si tu n'avais pas fait la decompression de l'image. Si le fichier a changé entre temps, il sera relu.

    Enfin, si tu ne veux pas partager ton image avec une autre application, tu peux utiliser la methode Toolkit.createImage(). Dans ce cas, lorsque ton application meurt, les images seront aussi detruites par le gc.
    Je te conseille malgré tout d'utiliser la methode Image.flush(). Une image utilise beaucoup de ressources, et il est préférable de ne pas attendre le gc, surtout sur des systemes avec peu de mémoire.

  5. #5
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé le flush, mais il me fait le même Bogue...
    Est-ce qu'il y a moyen de loader une image sans passer par gettoolkit?

  6. #6
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ok...J'ai essayé avec createImage et ça fonctionne très bien.

    Merci Beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mémoire applet Java - Internet Explorer
    Par jg_muse dans le forum Applets
    Réponses: 2
    Dernier message: 12/06/2007, 16h22
  2. Bordures autour d'un applet java sous firefox
    Par laloi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/05/2005, 15h23
  3. [Conversion]Applet Java Vers Java Web Start
    Par robin206 dans le forum JWS
    Réponses: 2
    Dernier message: 20/04/2005, 09h28
  4. flash & applet java
    Par subzero82 dans le forum Flash
    Réponses: 3
    Dernier message: 23/01/2005, 17h04
  5. [VB.NET] Passage de parametres à une Applet Java
    Par AntiSAL dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/08/2004, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo