Version 4 : ThreadGroup statique, boutons poussoirs !

Changements par rapport à la version précédente

  1. Afin de pouvoir suspendre ou démarrer tous les cercles d'un coup, on crée un ThreadGroup statique dans la classe Cercle et deux méthodes statiques suspend() et resume() qui permettront de suspendre ou de réveiller d'un coup tous les Threads du ThreadGroup statique.
  2. Du coup, on ne fait plus dériver Cercle de Thread, mais on lui fait implémenter Runnable. Ainsi, on maîtrise la création du Thread de chaque cercle, et on utilise un constructeur de Thread acceptant le ThreadGroup statique en paramètre.
  3. Les méthodes suspend() et resume() de l'applet se retrouvent grandement simplifiées.
  4. On a rajouté 3 boutons poussoirs dans l'applet : un pour arrêter l'animation (touche "pause" du jeu vidéo), un pour la reprendre, et un pour ajouter des cercles au vol (c'est tellement facile maintenant !).
  5. Pour traiter les clicks sur les boutons, l'applet implémente l'interface ActionListener.

Des cercles animés, version 4

Sources de cette Applet

Problèmes de cette version

  1. Ca scintille toujours...
  2. Si on retaille l'Applet, les cercles rebondissent toujours dans la même zone...
  3. Ca commence à être pas mal...