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

EDT/SwingWorker Java Discussion :

[SWING] Mise a jour de l'interface dans les �v�nements


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 14
    Par d�faut [SWING] Mise a jour de l'interface dans les �v�nements
    Bonjour,
    Voila, je me demande si quelqu'un a d�j� rencontr� ce probl�me. Je d�veloppe actuellement une application en SWING et j'ai des probl�mes de mise � jour de l'interface. A la suite d'une action de l'utilisateur, je veux :
    1 effectuer une mise a jour de l'interface (du genre "traitement en cours")
    2 lancer une s�rie de traitements
    3 effectuer une nouvelle mise a jour de l'interface (afficher le r�sultat des traitemens).
    Mon probl�me est le suivant: la premi�re mise � jour ne s'effectue qu'� la fin du traitement de l'�v�nement (et donc ne se voit pas). Quelqu'un a-t-il une id�e?

  2. #2
    Gfx
    Gfx est d�connect�
    Expert confirm�
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    D�tails du profil
    Informations personnelles :
    �ge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par d�faut
    Oui. Les evenements sont executes dans un thread appele Event Dispatch Thread (ou EDT). Si tu fais des operations dedans tu bloques le rafraichissement de l'interface. Il faut donc lancer un nouveau thread depuis ton ecouteur d'evenement pour lancer ton traitement. En revanche les mises a jour de l'interface et les acces aux composants doivent toujours etre fait dans l'EDT. Regarde SwingUtilities.invokeLater(), SwingUtilities.invokeAndWait() et renseigne-toi sur la classe SwingWorker (non incluse dans le JDK).

  3. #3
    Membre �clair�
    Inscrit en
    Juin 2005
    Messages
    303
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par d�faut
    il faut faire des threads pour chaque tache si tu veux assurer le bon deroulement chronologique de test actions. C'est une histoire du style zone critique, il faut considerer que ton interface est comme une zone critique qui a une liste qui contient 3 threads et que chacun d'eux attend son tour pour affectuer le traitement qu'il doit faire

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 14
    Par d�faut
    Merci � vous, j'ai r�solu mon probl�me grace � SwingUtilities.invokeLater(), bon a savoir...

Discussions similaires

  1. Mise a jour d'un champ dans une base access
    Par FabriceAmex dans le forum IHM
    R�ponses: 9
    Dernier message: 10/06/2010, 09h48
  2. Mise a jour de controle utilisateur dans une forme
    Par pascalwick dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 02/12/2008, 15h53
  3. [MySQL] Probl�me de mise a jour d'une donn�e dans la base
    Par Yagami_Raito dans le forum PHP & Base de donn�es
    R�ponses: 15
    Dernier message: 24/05/2007, 16h06
  4. [MySql] Mise à jour d'une donnée dans une base mysql
    Par Bourak dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 16/06/2006, 16h46

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