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