Vous êtes sur la page 1sur 1

USTHB MPDL

M2 IL

TP3 Design Pattern Observer


On souhaite réaliser une application de gestion d'un espace d'affichage publicitaire, régie par
le patron Observer. Pour ce faire on va définir une fenêtre Cycles, dont un des composants est
un Timer qui se déclenche chaque 2 secondes. On va également définir deux objets
graphiques qui veulent être prévenus de chaque déclenchement du Timer pour effectuer des
modifications de leur affichage.

Vous utiliserez la classe javax.swing.Timer.


Le constructeur : public Timer (int delay, ActionListener listener);
Avec delay l'intervalle de temps entre chaque évènement, exprimé en millisecondes, et
listener l'objet écouteur de ces évènements (cible du Timer).
La méthode permettant de lancer le processus : public void start();
Les événements produits par le Timer sont de type ActionEvent.

Modifiez la classe Cycles pour qu’elle implémente l’interface ActionListener. Cette interface
réclame l’implémentation d’une méthode, qui sera déclenchée périodiquement par le Timer.
Implémentez cette méthode, en lui faisant pour l’instant afficher un message sur la console ("
Top Timer !"). Dans le constructeur de la classe Cycles, créez le Timer qui sera enregistré
comme attribut, et démarrez le dans le programme principal à l’aide de la méthode start().

Pour les objets graphiques :

Créez une classe EspaceCouleur qui sera un JPanel, et qui aura un attribut de type
java.awt.Color initialisé dans le constructeur à Color.black. Chaque top du Timer doit
modifier la couleur en la faisant passer de noir à bleu puis de bleu à noir. Ajouter ensuite
l’objet graphique EspaceCouleur à la classe Cycles.

Créez une classe CompteurPub qui sera un JLabel. Cette classe aura un attribut entier qui
représente le nombre de cycles initialisé à 0. Le texte du JLabel est « Nombre de pub
présentées : 0 ». Le compteur est incrémenté et le texte est mis à jour à chaque top du Timer.
Ajouter ensuite l’objet graphique CompteurPub à la classe Cycles.

Questions :

· Concevoir et implémenter cette application en respectant le patron Observer.


· Rédiger un rapport justifiant vos choix.

Page 1 sur 1

Vous aimerez peut-être aussi