Previous Up Next

4  Application: Ardoise magique

4.1  La classe Graphics

Graphics est une classe qui permet de dessiner en tracant des trais, cercles, arc de cercles dans une interface.

Chaque composant possède une instance de Graphics pour se dessiner. Pour obtenir une instance de Graphics sur une instance de Component, il faut utiliser la méhode getGraphics(). Cette instance représente un rectangle dans lequel il est possible de dessiner. La taille de ce rectangle est la taille réelle du composant. Graphics possède un système de coordonnées géométriques orthogonales dont l’origine se situe en haut à gauche du rectangle dont nous venons de parler. Pour que les modifications apportées sur l’objet Graphics puissent persister après le rafraîchissement, il faut écrire une sous classe du composant et redéfinir la méthode paintComponent qui est appelée par Swing pour dessiner le composant. Un exemple pour dessiner un cercle dans un JPanel:

public class MonPanel extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawOval(10,10,50,50); } }

4.2  Mise en oeuvre

Question 8. En utilisant la classe ArdoiseMagique définie dans le fichier ArdoiseMagique.java, construisez une interface qui permet de dessiner des traits en utilisant le bouton gauche de la souris. Un appui sur le bouton droit permettra d’effacer le dessin. Notez que la classe définie dans le fichier ArdoiseMagique.java n’applique pas le patron de conception MVC puisqu’il n’y a pas de séparation nette entre le Modèle et la Vue (cela fera l’objet du prochain TP). Note: Utilisez la méthode getInsets de JFrame pour obtenir la hauteur de la barre de décoration de la fenêtre et ainsi faire correspondre la position du pointeur à celle du trait tracé. Attention: veillez à appeler la méthode après avoir appelé la méthode pack() de JFrame.

Tutoriel sur MouseListener : http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html

Tutoriel sur MouseMotionListener: http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html

Documentation sur la classe MouseEvent


Figure 3: Ardoise magique.


Previous Up Next