Bonjour,
je suis en train de développer une petite appi qui affiche un dessin 2D et toutes les secondes, j'ai envie de le faire évoluer.
Donc pour avoir un timer, j'utilise une thread "vide" sur laquelle j'applique un timer.sleep(1000);. Ca fonctionne bien mais il faut attendre que le programme ait fini son dessin pour pouvoir quitter (la croix ne réagit plus). J'ai essayé en rajoutant un bouton Stop pour interrompre le tout en faisant timer.interrupt(); timer.join();.
Mais ça ne change rien, je dois toujours attendre qu'il ait fini...
Voici en gros mon programme (pseudo code):
J'ai vu après plusieurs recherche que les threads étaient déconseillées avec Swing, mais je les utilise sans les utiliser.
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 class Dessin{ boolean painting =false; timerTH timer = new timerTH(); public void paint(Graphics g){ while painting{ //actualise le dessin timer.sleep(1000); } //quitte la thread si elle est active } private void btnStopActionPerformed(ActionEvent evt){ //quitte la thread si elle est active painting = false; } //Main lance la thread timer et un repaint avec painting = true; } class timerTH extends Thread{ //Méthode run vide }
Est-ce que cela pourrait marcher avec les threads? Si oui, comment?
Merci par avance
Partager