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

Interfaces Graphiques en Java Discussion :

Thread/Mise a jour d'IHM


Sujet :

Interfaces Graphiques en Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Thread/Mise a jour d'IHM
    Bonjour a tous,

    Je consulte régulièrement les différents forums et aux tutoriaux qui m’ont jusqu’ici toujours rendus de fiers services.

    Aujourd’hui, pour être clair, je sèche.

    Développeur n’étant pas mon métier, je vous prierai de m’excuser pour le style candide de ma question.


    Dans un petite appli java, j’ai un traitement a effectue.
    Ce traitement pouvant être long, je le lance dans un thread, afin de ne pas bloquer l’ihm.

    Afin de mettre a jour de façon régulière cet IHM, j’ai implémente les mécanismes Observable/Observer, donc, a la fin d’un traitement, j’appel la méthode notifyObservers, qui effectue un rappel vers les méthodes update des observer.

    C’est la que le problème se pose.

    Je ne suis pas capable de mettre à jour les champs de mon IHM, pour la bonne et simple raison que je ne suis pas dans le bon thread (enfin, il me semble).

    Y’a-t-il une solution évidente à ce problème, ou bien, est-ce un problème de conception ?

    En vous remerciant.

    David.

  2. #2
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    As tu pensé à appeler setChanged() avant de notifier tes observeurs ?

    Si ce n'est pas le cas, les observeurs ne seront pas notifiés.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    As tu pensé à appeler setChanged() avant de notifier tes observeurs ?

    Si ce n'est pas le cas, les observeurs ne seront pas notifiés.
    c'est l'erreur que j'avais faite au debut

    Mais je m'en suis rendu compte tout seul.

    Je n'ai pas de soucis de notifs, je remonte bien jusqu'a mon observer "ultime" , sensé faire la mise a jour de l'IHM.

    Mon souci est que les modifications que j'ordonne a l'ihm ne sont pas prise en compte ( un setText , par exemple ).

    C'est pourquoi je pense qu'il s'agit d'un probleme de thread

    David.[/code]

  4. #4
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Seul l'EDT (EventDispatchThread) peut mettre à jour l'IHM Swing.
    Utilise SwingWorker: http://java.sun.com/docs/books/tutor...c/threads.html
    https://swingworker.dev.java.net/

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci

    J'ai trouver l'equivalent pour SWT, le principe est le meme.

    Reste a passer le sujet a Resolu.

    Merci de votre participation.

    David.

  6. #6
    Membre du Club
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 46
    Points
    46
    Par défaut
    Salut,
    je travaille avec SWT, et donc quel est cet équivalent svp?

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En fait il suffit de reprendre le code du SwingWorker et de remplacer les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SwingUtilities.invokeLater(...)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AWTEventQueue.invokeLater(...)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Display.getCurrent().asyncExec(...)
    Plus d'infos par là: http://blogs.sun.com/swinger/entry/s...er_for_swt_too
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Membre du Club
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 46
    Points
    46
    Par défaut
    ok merci, j'ai un pb encore mais je vais posté dans un nouveau post celui ci étant Résolu

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/04/2010, 12h40
  2. [SWT]mise a jour ihm SWT par un thread
    Par will82 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 06/08/2004, 11h37
  3. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34
  4. Visualisation des mise à jour en réseau
    Par fandor7 dans le forum Paradox
    Réponses: 2
    Dernier message: 06/12/2002, 15h54

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