A noter que si tu veux réaliser des opération complexe (comme ton animation) suite à une évènement swing (donc depuis l'EDT), il y a déjà la classe SwingWorker en java qui fournis tout ce qu'il faut pour
1) créer un thread de calcul à part
2) synchroniser régulièrement l'affichage
3) libérer immediatement l'EDT:
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 SwingWorker worker = new SwingWorker<Void,TonTypeData>() { @Override public Void doInBackground() { for (int i = 0; i < nimgs; i++) { //recalculer publish(new TonTypeData(.....)); // Thread.sleep } } @Override public void done() { // un truc à faire à la fin } } protected void process(List<TonTypeData> pairs) { // mettre à jour les composants graphiques // appeler le repaint(); } };
Partager