[debutant] arrêter un thread
bonjour,
j'ai un bouton qui lance un thread (ce thread récupère l'adresse IP d'un nom DNS):
Code:
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
|
// ***************************************************************
// evenements
private class ActionListener_bouton1 implements ActionListener{
private Thread t;
@Override
public void actionPerformed(ActionEvent arg0){
t = new Thread(new ThreadConfig());
t.start();
}
}
// ***************************************************************
// configuration du module
class ThreadConfig implements Runnable{
@Override
public void run() {
InetAddress addrIP;
String host = textField1.getText();
textPane1.setText("");
bouton1.setText("Arrêter");
try {
addrIP = InetAddress.getByName(host);
textPane1.setText("1- Connexion : " + host + " => " + addrIP.getHostAddress());
} catch(Exception e){
textPane1.setText("1- Connexion : " + host + " => Erreur");
bouton1.setText("Executer");
return;
}
bouton1.setText("Executer");
}
} |
La methode NetworkInterface.getByInetAddress(addrIP) met longtemps à répondre lorsqu'elle ne trouve pas l'adresse IP. Lorsque je lance le thread, je change le text du bouton par "arreter" et une fois terminé, je remet le text à "Executer".
=> comment faire pour le stopper instantanément et ecrire un message dans mon textPane1 pour indiquer que le process à été arrêté (lorsque je reclic sur mon bouton) ?