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 :

[Multithreading] notifier l'interface graphique dans le thread dédié


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Points : 55
    Points
    55
    Par défaut [Multithreading] notifier l'interface graphique dans le thread dédié
    Bonjour,

    Dans le cadre de mon application, j'utilise un mécanisme de multithreading reposant sur la classe SwingWorker pour séparer mes threads d'affichage et de traitement lourd.
    Cependant, dans mon thread de traitement lourd héritant de SwingWorker, je suis amené à appeller mon interface graphique pour certains traitements de rafraîchissement (progression de JProgressBars, activation/désactivation de JButtons, changement de texte de JLabels...), et je suis enquiquiné par le fait que ces traitements de rafraîchissement liés à l'interface sont effectués dans le thread de traitement lourd (SwingWorker).
    Je voudrais donc savoir s'il n'existe pas des stratégies qui répondent à ma problématique et qui sont régis par le modèle MVC qui ont sont utilisés dans l'industrie logicielle.
    Merci par avance,

    Yelbied

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    À mon avis, tu utilises mal SwingWorker.

    Dans ton cas, il faut fréquemment faire appel à publish(V...) et redéfinir la méthode process(List<V>).

    De plus, savoir dans quel thread s'exécute chaque méthode de SwingWorker est intéressant afin de savoir quoi appeler et comment.

    Par exemple, tu peux, dans ta méthode doInBackground(), faire des appels à SwingUtilities.invokeLater() pour effectuer des travaux customisés dans l'EDT. Ce n'est pas parce que tu utilises SwingWorker que tu ne peux plus utiliser la méthode standard de discussion avec ce Thread

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

Discussions similaires

  1. Interface graphique dans Talend
    Par Bouga74 dans le forum Installation, migration et administration
    Réponses: 10
    Dernier message: 01/02/2010, 11h38
  2. Interface graphique dans JApplet
    Par deglingo592003 dans le forum Applets
    Réponses: 0
    Dernier message: 05/03/2009, 10h02
  3. ajout d'interface graphique dans eclipse
    Par sky88 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/12/2008, 01h37
  4. Réponses: 6
    Dernier message: 23/05/2008, 15h15
  5. Réponses: 10
    Dernier message: 15/05/2006, 10h57

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