Bonjour à tous!
J'ai encore un petit souci (pour changer...!) Mais cette fois-ci avec un thread!
Mon programme lance une interface graphique (Jframe) avec 2 Jbuton :
un bouton start pour lancer un thread et un bouton stop pour l'arrêter.
Lorsque l'on clique une première fois sur start le thread se lance bien, mais une fois arrêté, il est impossible de relancer le thread une deuxième fois!
Voici mon code:Pourtant juste avant la deuxième relance quand je test l'etat du 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class maFenetre extends JFrame implements ActionListener{ ... Thread1 p = new Thread1(); JPanel container = new JPanel(); JButton start = new JButton("Start"); JButton stop = new JButton("Stop"); ... public void actionPerformed(ActionEvent e) { if(e.getSource() == start){ System.out.println("Etat du thread p : \nStoppé :"+p.isInterrupted()+"\nVivant :"+p.isAlive()); if(p.isAlive()==false){ System.out.println("on lance le thread"); p.start(); } } else if(e.getSource() == stop){ p.interrupt(); } } ... public class Thread1 extends Thread{ ... public void run(){ while(Thread.currentThread().isInterrupted()==false){ ... try { Thread.sleep(10000); } catch (InterruptedException ex) { System.out.println("Interruption attrapé\nEtat du thread: "+Thread.currentThread().isInterrupted()); Thread.currentThread().interrupt(); System.out.println("Retest de l'etat du thread: "+Thread.currentThread().isInterrupted()); } } } }
p.isAlive() et p.isInterrupted() me retourne false! Le thread ne veut vraiment pas se relancer!!!!! Je ne vois pas ce qui cloche...
Partager