Bonjour,
Je developpe actuellement une application qui permet a chaque clique d'un bouton d'afficher une ligne avec la classe GC.
Cependant je souhaite passer par les thread java car ensuite j'aimerai bien faire une animation graphique.
Voici le code de mon bouton, a chaque pression je lance 5 threads.
Ensuite voici le code de ma classe thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 zz.addListener(SWT.MouseUp, new Listener() { public void handleEvent(Event event) { for (int i = 10; i < 15; i++) { Thread t1; ThreadPacket ex1 = new ThreadPacket(i, null, c1); t1 = new Thread(ex1); t1.start(); } } });
Je voudrais que les 5 threads se lance dans l'ordre et ensuite que chacun leur tour se finisse grace au thread.
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 public class ThreadPacket implements Runnable{ int number; RGB colorRGB; Composite parent; public ThreadPacket(int i, RGB color, Composite parent) { number = i; colorRGB = color; this.parent = parent; } public void run() { parent.getDisplay().asyncExec(new Runnable() { public void run() { NettraceView.drawLines(number, null); try { Thread.sleep(1500); } catch (InterruptedException e) { e.printStackTrace(); } NettraceView.eraseLines(number); } }); } }
Pour le moment, les thread se lancent un par un. Le suivant attendant que son predecesseur ai fini ses taches.
Pour etre plus precis, mes fonction drawLines et erasesLines sont static.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public static void drawLines(int i, Color color) { //canevas = variable globale static GC gc = new GC(canevas); //tracage de la ligne i }
Partager