TD JAVA : IHM Animée En utilisant un objet Timer propageant des événements (voir annexe), donner le code permettant de dessiner une horloge (possédant une grande, moyenne et petite aiguille). x1 x y1 Ө y0 x0 y Fig1. Coordonnées trigonométriques Fig 2. Copie d'écran de l'horloge Quelques remarques : L'ordre trigonométrique est inverse à celui des aiguilles. L'ordonnée est croissante vers le bas. Pour un angle teta donné, pour un rayon R donné, la position de x1, y1, coordonnées finale de l'aiguille sont : x1 = x0 + R x sin(teta) y1 = y0 - R x cos(teta) Il faudra donc utiliser trois angles différents, chacun correspondant aux heures, minutes et secondes, ainsi que bien sur trois rayons différents. Rappel : la fonction utilisée pour tracer une ligne est drawLigne(x0, y0, x1, y1) de la classe Graphics. En java, pour animer une IHM, il est possible d'utiliser un Timer (javax.swing.Timer) Exemple : class Ardoise extends JPanel implements ActionListener { Timer timer; ... Ardoise() { ... timer = new Timer(100, this); // definition d'un timer de 100 ms ... } } public void actionPerformed(ActionEvent e) { if (e.getSource() == timer) // reception de l'événement déclenché par le Timer. { ... repaint(); } ... } public void paintComponent(Graphics g) { ... }