Bonour tout le monde,
Il y a peu de temps j'ai demandé comment fermer un thread, on ma redirigé vers la faq mais malheureusement je n'arrive pas à le faire. Bien sur j'ai essayé d'autre méthode mais c'est pareil.
Je suis débutant en Java.
Voici mon dernier essaie (je le trouvais pas mal mais ça ne fonctionne pas).
Donc en fait la je changeais la valeur d'un booléen pour terminer la boucle.
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 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class inter_client extends JFrame { ... private boolean fin= true; //voici le thread de connexion a un serveur. public class threadconnex extends Thread { public void run() { boolean connexionEnCours = true; try { BufferedReader entrée = new BufferedReader(new InputStreamReader(conexion.getInputStream())); PrintWriter sortie = new PrintWriter(conexion.getOutputStream(), true); sortie.println("Client connecté\n"); while(connexionEnCours) { connexionEnCours = fin; String ligne = entrée.readLine(); panneau.append(ligne); } panneau.append("\nfermeture connexion\n"); sortie.println("Client deconnecté\n"); conexion.close(); } catch(IOException ioe) { panneau.append("\nerreur 11 " + ioe); } } } //méthode déclencher par clic de souris en interface graphique public class lance_conex implements ActionListener { public void actionPerformed(ActionEvent ea) { try{ conexion = new Socket("meda.homelinux.com", 1234); panneau.append("Connexion au serveur établie\n"); t1 = new threadconnex(); t1.start(); lancer.setEnabled(false); arreter.setEnabled(true); } catch(IOException ioe) { } } } //voici la méthode pour fermer le thread, il change la valeur du booléen. //méthode déclencher par clic de souris en interface graphique public class arrete_conex implements ActionListener { public void actionPerformed(ActionEvent ace) { fin = false; conexion = null; chat.setEnabled(false); arreter.setEnabled(false); lancer.setEnabled(true); } }
merci pour votre aide
Partager