Bonjour à tous

Dans mon appli, je réalise un Timer tous les secondes qui vérifie l'existence ou pas d'un dossier image. Si celui-ci n'existe pas, je lance un thread qui va créer ce dossier et faire une conversion de fichier PDF en plusieurs pages PNG

Ce traitement etant assez long, le Timer se relance donc plusieurs fois

Comment empecher le timer de se relancer si j'execute mon thread??

voila les codes

Appel du Timer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
//Ecouteurs sur le dossier racine
timerEcouteDossierImage = TimerEcouteurDossierImage();
timerEcouteDossierImage.start ();
Timer :
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
 
    /**
     * Timer d'écoute des dossiers Images
     * @return
     */
    private Timer TimerEcouteurDossierImage ()
    {
        ActionListener action = new ActionListener ()
        {
            public void actionPerformed (ActionEvent event)
            {
                //Test si dossier image existe si non lancement de ThreadImage
                String[] liste = ManagerPath.getListFichier();
                for (int i = 0; i < liste.length; i++)
                {
                    String dossier = ManagerPath.getNomDossier(liste[i]);
                    File fileDossier = new File(dossier);
                    //test si le dossier d'image existe
                    if(fileDossier.exists()) {  continue;   }
                    createImage = new ThreadImage(liste[i]);
                    createImage.execute();
                }
            }
        };
        return new Timer (1000, action);
    }
Thread de lancement de la capture
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
 
class ThreadImage extends SwingWorker<Object, Object>
{
    private String fichier;
    public ThreadImage(String fichier)
    {
        this.fichier = fichier;
    }
 
    @Override
    protected Object doInBackground() throws Exception
    {   
        System.out.println("Debut de Capture : " + fichier);
        ManagerPDF.captureImage(fichier);
        System.out.println("Fin de Capture : " + fichier);
        return null;
    }
}
Comment arreter le timer lors du premier lancement et lorsque la capture est terminée le redémarrer??

Merci