Images et IE [Java] - Programmation
Marsh Posté le 06-03-2002 à 10:57:45
tu as déjà fait un topic là dessus.
http://forum.hardware.fr/forum2.ph [...] c=1&trash=
balance ton code ce sera peut etre plus simple
Marsh Posté le 06-03-2002 à 11:30:36
Bon voilà, c'est mon code simplifié...
public class monapplet extends Applet implements runnable
{
private Graphics gBuffer;
private Image background[];
private Image course;
// Init
public void init()
{
//Création d'une image de la taille de l'applet
imb= createImage(640,480);
gBuffer=imb.getGraphics();
for (i=0;i<4;i++)
{
background[i]=getImage(getCodeBase(),"images/Me
nu/choix"+i+".jpg" );
}
}
public void run()
{
while(ma_condition !=0)
{
repaint();
gBuffer.drawImage(background[0],0,0,this);
traitement();
// clic à un endroit
ma_condition=0;
}
ma_condition=1;
while(ma_condition !=0)
{
repaint();
gBuffer.drawImage(background[1],0,0,this);
traitement();
// clic à un endroit
ma_condition=0;
}
ma_condition=1;
etc....
// quand c'est la fin, on clic qq part et on lance nettoyer().
// après, on redirige le navigateur vers une nouvelle page internet.
AppletContext jeu2 = getAppletContext();
while (ma_condition!=0)
{
try
{
url_suivante = new URL("file:ctoto/tata.html);
jeu2.showDocument(url_suivante);
}
catch (java.net.MalformedURLException u)
{
System.out.println("URL mal formée !" );
}
}
}
// gestion du double buffering
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawImage (imb,0,0, this);
}
public void nettoyer()
{
System.out.println("On nettoie" );
background[0]=null;
background[1]=null;
background[2]=null;
background[3]=null;
background[4]=null;
course=null;
System.gc();
System.runFinalization();
gBuffer.dispose();
//g.finalize();
System.gc();
System.runFinalization();
}
}
Marsh Posté le 06-03-2002 à 10:50:30
J'ai une applet qui utilise beaucoup d'images et donc prend beaucoup de ram. Lorsque mon applet est terminée, même en mettant à null mes images et en tuant mon buffer (graphics), la ram ne se vide pas tant que IE n'est pas fermé (même si je ferme la fenêtre de l'applet et qu'une autre fenêtre IE est ouverte).
Comment faire pour libérer la ram (j'ai déjà essayé garbage collector et Image=null) merci