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