question sur le Timer de javax.swing [Java] - Java - Programmation
Marsh Posté le 26-05-2004 à 11:52:27
non non non non !
1) le timer de swing ne re-rentrera pas. Les autres actionEvent seront enfilés dans la file d'évènement et traités à la suite les uns des autres.
2) même s'il re-rentrait, repaint() ne re-rentrerait pas.
3) repaint ne repeint pas à chaque appel, des appels successifs seront condensés en un seul.
4) tes variables affTermine ne seraient pas vues par les autres tâches
Donc, pas de prise de tête, tu fait un repaint() tout simple
Marsh Posté le 26-05-2004 à 12:10:37
nraynaud a écrit : non non non non ! |
Ok nickel, merci beaucoup, c'est ce à quoi je pensais... Il ne faut pas oublier que je n'est pas qu'un repaint() dans l'actionEvent, mais aussi un champ.MAJ(), mais d'après ton 1) ça ne poseras pas de probleme !
Merci beaucoup !
Tu vois, tu n'es pas si con
(cf ta signature )
Marsh Posté le 26-05-2004 à 13:18:18
Sylfurd a écrit : aussi un champ.MAJ() |
1) gloups, j'avais pas vu ça. Si tu veux repeindre à cause de la mise à jour du champ, inutile (voire déconseillé, ça bouffe du temps inutilement), c'est automatique (y'a tout un système de communication entre le modèle et le composant graphique).
2) on fait ce qu'on peut quoi.
Marsh Posté le 26-05-2004 à 13:38:07
nraynaud a écrit : 1) gloups, j'avais pas vu ça. Si tu veux repeindre à cause de la mise à jour du champ, inutile (voire déconseillé, ça bouffe du temps inutilement), c'est automatique (y'a tout un système de communication entre le modèle et le composant graphique). |
Oui, en fait c'est un projet de Java que je dois finir pour le 3 juin pour ma 2eme année de MIAS ...
En fait c'est un "jeu de stratégie", et j'utilise donc des objets qui se déplacent ...
A chaque coup du Timer je redéplace les unités si yen a besoin, je créée la forme de l'objet suivant sa position et son angle (en fait on n'a pas vu de choses très évoluées en grafisme en java, alors j'utilise des polygone d'une 20aine de points pour chaque type d'unité) et je l'affiche dans le JPanel...
On n'a pas vu autrement
Marsh Posté le 26-05-2004 à 11:12:27
Voila, je me demande si le Timer de javax.swing attends d'avoir terminé l'execution de son ActionEvent avant avant de déclencher le suivant...
sur java.sun.com je penses avoir trouvé un réponse, mais je ne suis pas sur d'avoir tout compris:
Although all Timers perform their waiting using a single, shared thread (created by the first Timer object that executes), the action event handlers for Timers execute on another thread -- the event-dispatching thread. This means that the action handlers for Timers can safely perform operations on Swing components. However, it also means that the handlers must execute quickly to keep the GUI responsive.
Voila mon code:
en fait j'attends qu'il termine l'execution de l'actionEvent avant d'en continuer un autre grâce au booléen affTermine
Donc voila, ai-je besoin de reccourir à cette technique ou pas ?
Merci pour vos réponses
Message édité par Sylfurd le 26-05-2004 à 11:13:18