Je voulais réaliser 2 Threads distincts :
Le premier "ThreadTest2" qui déplace un JButton (toutes les 100ms)
Le second "ThreadTemps" qui affiche le temps dans une JTextArea.( toutes les secondes)
Je n'arrive pas à faire fonctionner ce programme comme je le souhaitais , ...Merci de me faire part de vos idées concernant la correction de cet exemple
Essai 1: lorsque le code de "ThreadTemps" contient
jTextArea1.setText(new Date().toString());, à chaque éxécution, le JButton déplacé par ThreadTest2, revient temporairement à sa position initiale
Essai 2: lorsque le code de "ThreadTemps" contient
jTextArea1.setText("eeee");, à chaque éxécution, le JButton déplacé par ThreadTest2, revient temporairement à sa position initiale
Essai 3: lorsque le code de "ThreadTemps" contient
jButton4.setText("eeee");, le JButton déplacé par ThreadTest2, se déplace comme voulu, sans revenir temporairement à sa position initiale
Essai 4: lorsque le code de "ThreadTemps" contient
jButton4.setTextnew ( Date().toString());, le JButton déplacé par ThreadTest2, se déplace comme voulu, revient temporairement à sa position initiale
les Threads sont appelés par :
le code des Threads est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { t1.ThreadStart(); } }); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { ThreadHorloge.ThreadStart(); } });
__________________
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 ///----------------------------------------------- public class ThreadTest2 implements Runnable { boolean end; Thread t; String Msg; int count; public ThreadTest2() { t = new Thread(this); setName( "nom ThreadTest2"); } public synchronized void run(){ this.end=false; PLocation=jButton1.getLocation(); while (!end) { PLocation.translate(1,1); jButton1.setLocation(PLocation); try{ Thread.sleep(80); } catch (InterruptedException e){ return; } } System.out.println(Msg+ " Terminé"); } // SwingUtilities.invokeLater(ThreadTest2); public void ThreadStop(){ this.end=true; } public void ThreadStart(){ // SwingUtilities.invokeLater(t); t.start(); } } //ThreadTest2 //---------------------------------------------- ///----------------------------------------------- public class ThreadTemps implements Runnable { boolean end; Thread t; public ThreadTemps() { t = new Thread(this); setName( "nom ThreadTemps"); } public synchronized void run(){ this.end=false; PLocation2=jButton1.getLocation(); while (!end) { PLocation2.translate(0,10); jButton4.setLocation(PLocation2); // jTextArea1.setText("eeee"); jTextArea1.setText( new Date().toString()); try{ Thread.sleep(1000); } catch (InterruptedException e){ return; } } System.out.println( " Terminé"); } public void ThreadStop(){ this.end=true; } public void ThreadStart(){ // SwingUtilities.invokeLater(t); this.t.start(); } } //ThreadTemps
Débutant JBUILDER 9
Partager