bonjour,
je ne sais pas vraiment où placer ce post.
mon problème concerne la perte de contrôle d'un programme : j'ai créé un Timer dont la méthode run() est appelée une fois par heure (pour les tests c'est toutes les 20s); la création du timer se fait dans le constructeur d'une classe qui est "conteneur" d'une fenêtre (elle a été créée par eclipse et son plugin windowBuilder), par cet appel :
la classe Loop contient donc une méthode run(), qui est le programme principal : accès à deux bases de données et à une JTable de la fenêtre dont je parlais tantôt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public Ecran_principal() { initialize(); this.frame.setVisible(true); myTimer.schedule(new Loop(this), 0, 20000); }
je voudrais implémenter le comportement suivant : attendre 5mn (le temps qu'un SMS soit envoyé par le programme) pour récupérer le code de retour de ce SMS.
j'ai pensé à ceci :
mais cela bloque l'accès à la table (le programme ne réponds que de temps en temps), c'est génant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 new Thread(new Runnable() { public void run() { SwingUtilities.invokeLater(new Runnable() { ArrayList<Map<String, Object>> al_5 = null; public void run() { // attendre 5mn try { Thread.sleep(1000 * 60*5); } catch (InterruptedException e) { System.out.println(e); }
même le clic sur le bouton "exit" mets du temps.
auriez-vous des conseils?
merci,
olivier
ps: la méthode appelée toutes les 5mn (dans invokeLater) contient des appels à une base, et modifie la JTable.
Partager