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).
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)
{ ...
}
}
x1
y
x0
y0
x
y1
Ө
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !