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

AWT/Swing Java Discussion :

Problème de synchronisation entre fenêtre et boîte de dialogue


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème de synchronisation entre fenêtre et boîte de dialogue
    Bonsoir,

    J'ai un soucis de synchronisation entre ma JFrame, et une JOptionPane.showOptionDialog. En effet, lors du lancement de mon programme, à la fin de mon constructeur, j'avais une fonction qui faisait différent test et dans un certain cas affiché la boîte de dialogue.

    Le problème est que la boîte de dialogue s'affiche (lorsqu'elle le dois) avant la JFrame lors su lancement du programme, ce qui est logique puisque la fonction qui affiche cette boite ce trouve avant la dernière } du constructeur.

    La seul solution que j'ai trouvé est d’exécuter cette fonction directement à partir du main une fois l'instanciation de la Jframe terminée, mais je n'aime pas trop cette solution ...

    Avez vous des idées pour éviter ce gène ?
    Est ce que les threads permettraient d'éviter ce problème ? (Je n'y connais rien aux threads en Java..)

    Merci d'avance,
    Simon.

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Par défaut
    salut,

    Il est certain que tu doive placer cela ailleurs car si tu souhaites que ta JFrame soit terminée avant d'effectuer ton showMessageDialog(), le constructeur n'est clairement pas le meilleur endroit pour cela !

    Peux-être qu'en bidouillant il y a aurait moyen de déclarer un thread dans ton constructeur et de le démarrer à la toute fin de la construction et en lui mettant un petit "timer" approrié il pourrait démarrer après que ta JFrame soit terminée mais le hic c'est que déjà d'une ce n'est pas du tout propre de faire cela, et de deux ce n'est pas "portable" dans le sens où cela dépendra de la machine sur laquelle ton programme s'exécutera (en fonciton des machines le temps pour terminer la construction de ta JFrame va varier).

    Tu n'as qu'à le mettre ailleurs, cela dépend de ce que tu souhaites faire exactement mais personnellement je ne vois pas ce qu'il y a de mal à faire appel à cette fonction dans le main.

    Sinon au pire il est possible (peut-être) de déclarer un listener. Je ne sais pas s'il y a des listeners qui répondent à ces exigences mais essaye peut-être un WindowListener (méthode wondpwOpened()). Par contre pour éviter les warnings, mets la déclaration de ce listener dans une méthode appelée par le constructeur plutôt que dans le constructeur directement. Sinon, gare au LeakingThisInConstructor warning

  3. #3
    Invité
    Invité(e)
    Par défaut
    Yop,



    Niquel, je connaissais pas ce listener merci bien

    Pour ceux qui en aurait besoin :

    On est dans une classe qui hérite de JFrame

    Dans le constructeur :

    La fonction listener :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.addWindowListener(this);
    Dans la fonction windowOpened :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //Appel de la fonction qui ouvre de la boite de dialogue

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/06/2009, 17h38
  2. problème de synchronisation entre 2 listes (s:select) !
    Par adilensa dans le forum Struts 2
    Réponses: 3
    Dernier message: 16/05/2009, 21h22
  3. Réponses: 5
    Dernier message: 04/01/2009, 18h40
  4. Problème de synchronisation entre un DataGridView et un tableAdapter
    Par PtiteDéveloppeuse dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/11/2007, 17h19
  5. [Conception]Problème de synchronisation entre tables sous access
    Par romain404 dans le forum Modélisation
    Réponses: 4
    Dernier message: 15/04/2007, 21h01

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