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

Agents de placement/Fenêtres Java Discussion :

Probleme avec JDialog


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    Par défaut Probleme avec JDialog
    Bonjour à vous tous...
    J'ai un petit probleme qui est le suivant:
    J'ai une in terface JFrame comme principale, et avec la quelle je peux ouvrir des fenetres secondaires de type JDialog, deriere ces fenetres ya des thread qui s'executent, mais quand je ferme les fenetres, les threads resterant active et j'ai pas trouver un moyens de les arréter quand je ferme ma fenetre ( j'ai utilisé thread.stop() mais sans succes), j'ai essayé aussi de faire un JFrame au lieu de JDialog et c'est la meme chose, alors comment puis-je arreter les Threads lors de la fermeture de la fenetre secondaire sans fermer tt le programme?... Alr plz aidez moi
    Merci les amis

  2. #2
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Normalement on stop un thread en s'arrangeant simplement pour que sa méthode run retourne.
    Une solution c'est de déclarer une valeur booléenne volatile dans le thread, qui est testée régulièrement et qui provoque typiquement une sortie de boucle. Cette valeur peut ensuite être settée depuis un thread extérieur par un appel à quelque chose comme monThread.setStop(true);

  3. #3
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    Les Threads une fois lancés sont des processus indépendants. Donc tu ne peux pas les arrêtrer avec des méthodes du genre Thread.stop ou Thread.kill ou n'importe quelle autre du genre. Le problème ne vient pas de tes JDialog.
    Demande à tes Thread de contrôler (dans la méthode run) une valeur (booléen) qui change lorsque la JDialog se ferme. Alors la méthode run du Thread finira son execution, detruisant celui-ci.

    EDIT:
    Désolé, _skip, j'ai dû répondre au moment où tu postais :-S
    ZORRO
    Plus Vengeur que Masqué

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    Par défaut
    Oui c sa le probleme , comment je change la valeur boolean lors de click sur x du JFrame par exemple???

  5. #5
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    Il y a une interface (WindowListener je crois - pas sûr) qui permet de donner des actions à faire lors par exemple du clic dans la croix de la fenêtre. donc à ce moment-là, tu peux surcharger la méthode windowClosing ou bien WwindowClosed, faire un setDoitSArreter=true (doitSArreter étant le boolean créé avec le Thread et toujours à false jusqu'à présent) et dans ton Thread, tu demande de lire cette variable. if(!getDoitSArreter){actionsQuandIlEstActif();} Quand il n'a plus rien à faire, il est détruit.
    ZORRO
    Plus Vengeur que Masqué

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    Par défaut
    Oui c'est bon, j'ai cru que WindowClosing marche avec Frame et non pas JFrame... Merci sa marche bien...

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

Discussions similaires

  1. probleme avec l'appui sur une touche sur une jframe ou jdialog
    Par jeanfeu dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 05/08/2008, 16h14
  2. probleme avec Jdialog:qui son pere
    Par info_plus dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 16/03/2008, 14h29
  3. Probleme avec JDialog
    Par coolrere78 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 08/11/2006, 14h45
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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