Salut à tous,
J'ai développer un thread qui compare à chaque fois le nombre de ligne d'une table de ma base de données:

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
public boolean verifier(int x) {
        String query2 = "select count(*) from client ";
      try{
             ResultSet rs=cn.getResultat(query2);
          while (rs.next()) {
           nblignes2 = rs.getInt(1);
                }
                rs.close();
          } catch (Exception e) {
      JOptionPane.showMessageDialog(null, "Erreur lors de l'exécution de la requête recherche du nouveau nombre enregistrement client");
            }
 
         if( nblignes2 != x) {
                    //System.exit(-1);
                    return false;
                }
         else
                return true;
            }
et
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
public void run(){
 
      String query = "select count(*) from client";
      try{
             ResultSet rs=cn.getResultat(query);
          while (rs.next()) {
           nblignes = rs.getInt(1);
                }
                rs.close();
          } catch (Exception e) {
      JOptionPane.showMessageDialog(null, "Erreur lors de l'exécution de la requête recherche nombre enregistrement client");
           }
    while (!isInterrupted()){
          if (verifier(nblignes)==false){
               JOptionPane.showMessageDialog(null, "Une modification a été effectué sur la table client");
               nblignes=nouveaunblignes();
               //System.out.println("=>"+ nblignes);
                //System.exit(-1);
          }
                   try {
                   Thread.sleep(7000);
                      } catch (InterruptedException ex) {
              Logger.getLogger(EspionProduit.class.getName()).log(Level.SEVERE, null, ex);
             }
 
        }
    }
****
et dans la page d'acceuil j'ai fait un bouton (soit activer, soit desactiver), et je veut que le thread soit activé ou bien activé en fonction du clic de l'utilisateur ... j'ai testé avec ce code :
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
 EspionClient thread1 = new EspionClient();
 
 
        if (pageacceuil.comptclt % 2 ==0)
        {
 
            actclt.setText("Activer");
            thread1.interrupt();
 
        }
        else {
             actclt.setText("Desactiver");
            thread1.start();
            }
 
        pageacceuil.comptclt ++;
Avce actclt est le nom du bouton et comptclt est un compteur pour pouvoir basculer entre l'affichage de "activer" et "desactiver" sur le bouton ...
L'activation fonctionne parfaitement, mais quand je clique pour désactivé le thread, rien ne se passe et le thread continue a s'exécuté ...
Que dois-je faire pour arrêter le thread en cliquant sur désactiver?

Merci