TP 3 4 Java
TP 3 4 Java
TP 3 4 Java
Mostafa Azizi
Objectif Nous visons comme objectif dans ce TP de : Crer des animations sur une page WEB via des applets. Contrler ces animations laide des vnements de la souris ou du clavier. Apprendre utiliser les threads.
Travail faire
Feux routiers 1) Ecrire un code en Java qui permet de simuler, sur une applet, les feux routiers. Il sagit de dessiner trois cercles pour reprsenter les trois lampes (rouge, orange et vert) et den faire la simulation. Le feu rouge sallume pendant 150 s, le vert pendant 200 s et lorange pendant 50s. Pour compter le temps, utiliser la mthode sleep(long ms) de la classe Thread. 2) Imaginer un croisement avec plusieurs panneaux de feux routiers. Les vhicules contrls par un panneau sont considrs dans une file dattente (feu rouge). On veut implmenter un systme de feux intelligent qui permet de temporiser le feu vert selon le nombre de vhicules dans la file dattente (avec un temps Tmax ne pas dpasser). Par exemple, si lon suppose que le passage dun vhicule ncessite en moyenne 5s et quon a deux panneaux dont les files respectives comptent 10 et 5 vhicules (Tmax = 200 s) ; dans ce cas, le feu vert du premier panneau sallumera pendant 10*5=50 s et le second 5*5=25 s. Expliquer comment peut-on raliser ce systme et faire son implmentation. Horloge En utilisant les notions dapplet et de thread, crer une horloge graphique permettant de visualiser le dfilement des heures, des minutes et des secondes. Laffichage de lhorloge est : 1) numrique 2) analogique (avec des aiguilles) Dessiner main leve Dvelopper le code dune applet permettant de dessiner main leve avec la souris, puis donner la possibilit de modifier la couleur du dessin.
Contrle du mouvement dune boule par la souris On veut crer une animation sur une applet de la manire suivante : on dessine une boule pleine de couleur jaune dont les coordonnes (de son centre) seront continuellement modifies dans la mthode run() dun thread pour simuler son dplacement sur un fond de couleur bleue dlimit par Xmax et Ymax. Aprs chaque mise jour des coordonnes de la boule, on trace la nouvelle boule quivalente et on efface lancienne en la coloriant par la couleur du fond (bleue). La boule se dplace lintrieur du rectangle (0, 0, Xmax, Ymax), lorsquelle heurte le bord droit (resp. le bord bas), on dcrmente son abscisse (resp. son ordonne) ; de mme lorsquelle heurte le ct gauche (resp. le ct haut), on incrmente son abscisse (resp. son ordonne). Les dplacements dx et dy sont exprims laide de la mthode Math.random(). 1) Ecrire un programme qui ralise cette spcification. On suppose que la boule commence se dplacer ds le chargement de lapplet. 2) On veut contrler le lancement et larrt de lanimation de la boule. Pour ce faire, on fait appel aux vnements de la souris : lorsque la souris se trouve sur lapplet et on fait un clic, la boule se lance (et si elle est dj lance, elle continue son animation) ; de mme si la souris est sur lapplet et on fait un double-clic, la boule sarrte. Tout clic de la souris lorsque cette dernire est en dehors de lapplet, est sans effet. Augmenter le programme prcdent pour raliser cet objectif.