Programmation Java M2 TTT — Feuille n˚11 Interface graphique

Transcription

Programmation Java M2 TTT — Feuille n˚11 Interface graphique
Programmation Java
M2 TTT — Feuille n˚11
Interface graphique avec observateur
Exercice n˚ 1 Créer les classes suivantes :
import
import
import
import
java.awt.BorderLayout;
javax.swing.JComponent;
javax.swing.JFrame;
javax.swing.JPanel;
public class Beats extends JFrame{
public Beats(){
super("Battements");
JComponent newContentPane = new JPanel(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(newContentPane);
}
}
public class Main{
public static void main(String[] args){
Beats window=new Beats();
window.pack();
window.setResizable(true);
window.setVisible(true);
}
}
Que signifie chacune des instructions de ce code ?
Exercice n˚ 2
Modifier la classe Beats de sorte qu’elle implémente ActionListener. La
méthode actionPerformed se contentera d’afficher ”Tic tac” à l’écran. À
l’aide de javax.swing.Timer, ajouter un Timer dans Beats, qui se déclenchera
toutes les secondes sur l’objet Beats lui-même. Déclencher le Timer dans la
méthode main.
Exercice n˚ 3
Créer une classe BeatNumber qui étend JLabel, et contient un compteur
initialisé à 0 et dont le texte est :”Nombre de battements : 0”. Ajouter ce
label dans le composant Beats de façon à ce qu’il s’affiche au sud.
Exercice n˚ 4 Déclarer une interface Observer contenant une méthode
void notify(); Faire en sorte que BeatNumber implémente cette interface, la méthode implémentée incrémente le compteur et change le texte
affiché (setText). Modifier Beats de sorte que le timer déclenche l’appel de
notify().
Exercice n˚5 Créer une classe OneBeat qui étend javax.swing.Jpanel,
avec un attribut Color couleur initialisé à Color.BLACK. Faire apparaı̂tre
ce composant au centre de Beats. Pour spécifier la taille du composant,
redéfinissez la méthode getPrefferedSize(). Redéfinissez la méthode paint(Graphics g)
de sorte à ce qu’elle remplisse le composant de la couleur fixée par couleur.
Enfin, faire en sorte que OneBeat implémente Observer, la méthode implémentée
provoquant le passage du noir au rouge et vice-versa. Modifier Beat pour que
le timer déclenche le changement de couleur en plus du décompte.
Exercice n˚ 6 Modifier la classe Beat pour qu’elle contienne un Vector
d’objets Observer, qu’on pourra enrichir à l’aide d’une méthode register.
Modifier actionPerformed de sorte à ce que les notifications soient envoyées
à cette liste d’observateurs.
2