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

3D Java Discussion :

Fermeture dialog avec destruction object


Sujet :

3D Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 42
    Points
    42
    Par défaut Fermeture dialog avec destruction object
    bonjour,

    je cherche le moyen de detruire un thread qui est lancé le temps de l'activation d'un fenetre de type dialog.

    En fait j'ai deux probleme mais la même cause.

    j'ai une class Opengl qui errite de GLCanvas. cette class implemente un thread animator qui est chargé de rafraichir la fenetre periodiquement.

    L'objet Opengl est ajouté dans une fenetre de type dialog. lors de la fermeture de la fenetre dialog le thead est toujours actif et me bouffe de la resource.

    j'ai le même probleme avec une class qui errite d'un panel et qui est ajouté dans un dialog. cette class possede un thread qui execute une action periodique. Or lors de la fermeture de l'objet dialog, contenant la classe panel qui contient elle le thead, ce dernier n'est pas detruit.

    j'ai réimplementé la method finalize comme on le voit ci dessous mais ce code n'est jamais executé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*
    	 * stop animator before closing component
    	 * (non-Javadoc)
    	 * @see java.lang.Object#finalize()
    	 */
    	public void finalize() throws Throwable {
    		animator.stop();
     
    		System.out.println("Stop OpenGl");
    		super.finalize();
    	}
    Quelqu'un a une idée de pourquoi il n'y a pas d'appelle à cete methode lors de la fermeture de la fenetre dialog?

    voici le code qui ferme la fenetre de type dialog:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Viewer = null; // Viewer est de type Opengl
    this.setVisible(false); //this est de type Dialog
    this.dispose();

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Les appels à finalize() ne sont pas déterministes. Tu peux surcharger la méthode dispose() tout simplement. Ou te créer une nouvelle méthode, par exemple end() ou stop() ou cleanup(), que tu appelles juste avant dispose().
    Romain Guy
    Android - Mon livre - Mon blog

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Points : 118
    Points
    118
    Par défaut
    Un truc simple aussi est d'ajouter un WindowListener qui permet d'effectuer du code sur des évènements de la fenêtre (demande de fermeture, fermeture, iconification, ...)

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/07/2007, 13h07
  2. Problème avec xmlHttp object
    Par warmup27 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2007, 19h16
  3. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  4. [MFC][DLL]Dialog Avec ActiveX dans une DLL ?
    Par matazz dans le forum MFC
    Réponses: 1
    Dernier message: 16/05/2005, 16h36
  5. pb avec un [object]
    Par skea dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/12/2004, 10h54

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