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 :

Affichage et Threading


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
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut Affichage et Threading
    Bonjour,

    Je suis en train de réaliser une interface graphique pour un traitement long (sur Base de Données) et je souhaiterai actualiser mon affichage (barres de progressions) à intervalles réguliers pour ne pas trop consommer de ressources sur l'affichage.
    Je suppose que le threading est la manière la plus efficace de procéder mais je connais assez mal le fonctionnement des threads. Je voulais donc savoir quels est la manière la plus efficace de procéder (utiliser un monitor, des notify?) Si quelqu'un pouvait me donner des pistes ce serait pratique parce que je ne sais pas bien par où commencer.
    LDPDC

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Il faut en effet passer par des Threads, mais l'actualisation de l'interface doit se faire dans l'EDT et non pas dans ton thread de traitement.
    Regarde du côté de la classe SwingWorker est faite pour cela.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Il faut en effet passer par des Threads, mais l'actualisation de l'interface doit se faire dans l'EDT et non pas dans ton thread de traitement.
    Regarde du côté de la classe SwingWorker est faite pour cela.
    Merci beaucoup, c'est visiblement exactement ce qu'il me fallait!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    En réalité après une investigation plus longue, SwingWorker n'est tout à fait adpaté puisque je cherche à afficher le déroulement d'opérations vraiments longues (1 à 3h) et que pour éviter de les allonger, je veux ne rafraichir les données de mon affichage qu'à une certaine fréquence. Je continue donc mes recherches et je suppose qu'Invoke later de swing correspond bien à mes besoins, mais n'hésitez pas si vous avez d'autres pistes.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    SwingWorker semble bien adapté.
    Pourquoi penses-tu que ça ne marcherait pas ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Citation Envoyé par fr1man Voir le message
    SwingWorker semble bien adapté.
    Pourquoi penses-tu que ça ne marcherait pas ?
    Ce qui me pose problème dans ce cas précis est le DoInBackground. Je ne peux pas vraiment segmenter mon code de "calcul" de manière à bien correspondre à cette instruction. Celà me demanderai pour bien adapter mon affichage d'être capable de segmenter selon des étapes hors je ne peux pas parce que je travaille sur du code généré donc mon affichage n'aura en fait accès à la progression des opérations que par l'intermédiaire d'une HashMap qui contient l'avancement de chaque partie du code.

    Cependant, si tu penses que c'est quand même possible, dis moi comment. Je pense pour l'instant qu'il sera plus simple utiliser un thread personnalisé pour gérer le tout.


    Merci en tout cas pour ta rapidité de réaction,
    LDPDC

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

Discussions similaires

  1. Problème affichage JProgressBar/Thread/.bat
    Par davly dans le forum Général Java
    Réponses: 3
    Dernier message: 13/03/2012, 09h59
  2. Réponses: 3
    Dernier message: 08/10/2010, 18h08
  3. [SFML] Problème avec affichage en thread
    Par black is beautiful dans le forum SFML
    Réponses: 0
    Dernier message: 05/05/2009, 10h33
  4. Timers, boucles d'affichage et Thread.sleep
    Par Silk_do_Nadear dans le forum Développement 2D, 3D et Jeux
    Réponses: 10
    Dernier message: 28/07/2007, 01h49
  5. Affichage Multi-Thread .
    Par BoBy9 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 12/06/2007, 15h51

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