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 :

[Thread et Swing] Affichage retardé


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Par défaut [Thread et Swing] Affichage retardé
    Bonjour,

    j'ai lu tous les articles concernant les Thread et Swing mais il y a 1 point qui me chiffonne...

    Voici mon algo :
    -Affichage d'une ligne dans 1 JTextPane
    -Lancement d'un thread
    -Attente de la fin du thread
    -Affichage d'une ligne dans 1 JTextPane

    Le problème est que j'ai beau utiliser 1 Thread, utiliser InvokeLater etc... je n'arrive pas à synchroniser l'affichage des premières lignes qui s'affichent en même temps que la dernière, c'est à la fin de l'exécution du thread.

    Quelqu'un a-t-il une solution magique ?

    merci...

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par esteban
    Voici mon algo :
    (1) -Affichage d'une ligne dans 1 JTextPane
    (2) -Lancement d'un thread
    (3) -Attente de la fin du thread

    (4) -Affichage d'une ligne dans 1 JTextPane
    Si tu lances un thread, et que tu attends sa terminaison juste derrière, autant ne pas lancer de thread... et appeler directement une méthode dans le thread courant...
    Car si tu exécutes cet algo dans l'EDT, l'EDT va être bloqué car il attend la fin de ton thread.
    Ce que tu veux, c'est exécuter (1) et (2) dans l'EDT, le (3) tu vires, et le (4) tu le mets à la fin de ta méthode run() du thread (dans un joli SwingUtilities.invokeLater())...

    Tu peux aussi utiliser swingworker : http://rom.developpez.com/java-swingworker

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Par défaut
    Formidable ! Ca fonctionne parfaitement !

    Je commence à mieux cerner l'agencement des appels par rapport aux threads, ce que je n'avais pas compris c'est que le Thread de l'EDT se bloquait pendant l'exécution d'un autre thread. Du coup c'est mon thread lancé que je surveillais...

    Merci !

Discussions similaires

  1. Thread et Swing
    Par alladdin dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 14/08/2006, 19h21
  2. Réponses: 3
    Dernier message: 29/04/2006, 22h06
  3. [Thread du Swing] Rend-moi la main quand t'as fini!
    Par janef dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 25/02/2006, 15h51
  4. [SWING]affichage d'une image
    Par chico_du_33 dans le forum AWT/Swing
    Réponses: 51
    Dernier message: 08/07/2005, 09h55
  5. [Swing]Affichage d'un lien
    Par Crazyblinkgirl dans le forum 2D
    Réponses: 2
    Dernier message: 26/08/2004, 16h41

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