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

SWT/JFace Java Discussion :

"Widget is disposed"


Sujet :

SWT/JFace Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut "Widget is disposed"
    Bonjour,
    En cliquant sur un joli bouton de mon plug in eclipse RCP je me "prends" cette erreur. Sachant que je n'ai disposé nul part aucun widget, je voulais savoir d'ou cela peut venir et comment I remedier ?
    D'avance merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 145
    Points : 179
    Points
    179
    Par défaut
    Peut-être qu'avec la stacktrace...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Juste le debut alors. En gros l'erreur viens de l'utilisation de mon thread... J'ai un thread qui appele tres indirectement la methode refresh qui est tout en bas... (bien sur il y en a d'autre avant mais cela remonte juste... )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Exception in thread "Thread-1" org.eclipse.swt.SWTException: Invalid thread access
    	at org.eclipse.swt.SWT.error(SWT.java:3374)
    	at org.eclipse.swt.SWT.error(SWT.java:3297)
    	at org.eclipse.swt.SWT.error(SWT.java:3268)
    	at org.eclipse.swt.widgets.Widget.error(Widget.java:435)
    	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:331)
    	at org.eclipse.swt.widgets.Table.deselectAll(Table.java:1404)
    	at org.eclipse.jface.viewers.TableViewer.setSelectionToWidget(TableViewer.java:1124)
    	at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1621)
    	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1330)
    	at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1386)
    Hum... oui ma question est mal posée car il ne sagissait pas du premier "item". Je crois avoir trouvé une reponse
    http://igm.univ-mlv.fr/~dr/XPOSE2003...vec_jface.html
    Il faut synchroniser...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 145
    Points : 179
    Points
    179
    Par défaut
    En fait, la méthode refresh() ne pas pas être appeler en dehors de l'EDT.
    Il faut faire l'appel comme suit dans ton thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    display.asyncExec (new Runnable () {
          public void run () {
             //appel à toutes méthodes modifiant l'UI
          }
       });
    Et hop, un autre petit lien : Threading issues

    [edit]ah bah, tu as déjà trouvé...[/edit]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Merci tout de même. C'est un probleme que tous ceux qui passant de swing à SWT devraient avoir, car en swing on a pas d'exception meme s'il faut egalement faire attention à ce que l'on fait....

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    c'est qu'en fait en swing tu a le thread awt qui tourne qd tu lance une ihm. alor qu'avec swt il faut tout faire soit meme...

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

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