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 :
Timer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Ecouteurs sur le dossier racine timerEcouteDossierImage = TimerEcouteurDossierImage(); timerEcouteDossierImage.start ();
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
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); }
Comment arreter le timer lors du premier lancement et lorsque la capture est terminée le redémarrer??
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; } }
Merci
Partager