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 :

[SWT] Thread et SWT


Sujet :

SWT/JFace Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [SWT] Thread et SWT
    bonjour,

    J'aimerais afficher une horloge, dans une barre d'etat d'une interface développée en SWT, je pense que l'objet "horloge" n'existe pas dans la bibliothèque donc j'ai essayé d'ecrire le prog suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    public class Horloge implements Runnable {
     
        private Label label;
     
        /**
         * @param l
         *  
         */
        public Horloge(Label l) {
     
            this.label = l;
            run();
        }
     
        public void run() {
            label.getDisplay().asyncExec(new Runnable() {
                public void run() {
                    Calendar c = Calendar.getInstance();
                    int h = c.get(Calendar.HOUR);
                    int m = c.get(Calendar.MINUTE);
                    int s = c.get(Calendar.SECOND);
                    label.setText(h + ":" + m + ":" + s);
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
     
            });
     
        }
     
    }
    dans mon shelle je rajoute un label : label_horloge et je lance le thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     Horloge h  = new Horloge(label_horloge);
            while (!shell.isDisposed()) {
                shell.getDisplay().asyncExec(h);
                if (!display.readAndDispatch())
                    display.sleep();
            }
    au lancement de l'appli l'interface s'affiche l'horloge aussi mais ça rame a mort, on dirait que le thread ne laisse pas la main a l'interface, donc j'ai du mal programmer mon thread, pouvez vous m'aide s'il vous plait.....merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    bon ben mon sujet n'a pas l'air tres interessant...a defaut il y a pas de forums specialement pour du developpement SWT? j'en ai trouvé un en allemand...mais c pas ma tasse de thé l'allemand....

  3. #3
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    les threads qui manipulent la gui doivent etre lancés a partir du thread de la gui a l'aide des methodes display.asyncExec() ou display.ayncExec()

    tu peux tr'inspirer de exemple1 et de exemple2

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    C'est ce que j'ai fait mais je pense que je l'ai mal fait meme si je ne vois pas la difference avec les exemples trouvés sur le net, bizarre...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Soluce thread SWt
    Salut,
    je pense connaitre ton problème, tu as "endormi" au mauvais endroit du coups ça endros le thread graphique essai comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     public void run() {
            try {
                  Thread.sleep(1000);
                  label.getDisplay().asyncExec(new Runnable() {
                   public void run() {
                    Calendar c = Calendar.getInstance();
                    int h = c.get(Calendar.HOUR);
                    int m = c.get(Calendar.MINUTE);
                    int s = c.get(Calendar.SECOND);
                    label.setText(h + ":" + m + ":" + s);  
                    }
                  });
            }
           catch (Exception e) {
                        e.printStackTrace();
                    }
        }
    à une faut de copie colle prêt ça devrait fonctionner.
    Enjoy.
    Afrit

Discussions similaires

  1. [SWT] Thread fainéant
    Par hyuu! dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 02/09/2008, 22h20
  2. Problème timer thread et swt
    Par kitue dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 07/06/2008, 12h22
  3. [SWT] Redraw de composant SWT depuis un thread non SWT
    Par Slayne dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 07/02/2008, 09h44
  4. Problème SWT & thread avec readLine()
    Par TheFuzion dans le forum Général Java
    Réponses: 1
    Dernier message: 06/05/2007, 18h42

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