Salut à tous,
Je développe un thread qui compare le nombre de lignes de ma base de données à chaque 7 secondes dont le code est le suivant:

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
 
public void run(){
 
      String query = "select count(*) from produit ";
      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 (isAlive()){
          if (verifier(nblignes)==false){
               JOptionPane.showMessageDialog(null, "Une modification a été effectué sur la table produit");
 
          }
                   try {
                   Thread.sleep(7000);
                      } catch (InterruptedException ex) {
              Logger.getLogger(EspionProduit.class.getName()).log(Level.SEVERE, null, ex);
             }
 
        }
le code de la méthode verifier():
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
 
 public boolean verifier(int x) {
        String query2 = "select count(*) from produit ";
      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 quand j'exécute ce thread dans ma page principale à travers:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 EspionProduit thread = new EspionProduit();
        // Activation du Thread
        thread.start();
et j'insère par la suite une nouvelle ligne dans notre base, le thread m'affiche qu'une modification a était lieu mais ce message s'affiche toute les 7 secondes ... Alors que je voulais qu'il me l'affiche une seule fois et la nouvelle valeur(=du nombre de lignes) devient celle que le thread va la comparer avec la sienne....
J'espère que vous m'avez compris ... Que dois-je faire?
Mrci pour votre coopération ...