Un premier contact avec une interface graphique                        

Un premier contact avec une interface graphique

           

alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter

Cliquez dans la zone ci-dessus puis déplacer la souris en maintenant le bouton enfoncé.

Vous devez dans cet exercice compléter le programme qui vous est proposé pour obtenir une application faisant apparaître une fenêtre où on peut dessiner de manière analogue à l'applet ci-dessus.

Dans un premier temps, vous devez compléter les méthodes mousePressed et mouseDragged pour que le dessin se fasse.

Dans le programme à compléter, vous devez modifier les instructions :
addMouseListener(null); et addMouseMotionListener(null);
Il faut changer les paramètres de ces instruction en indiquant une instance bien choisie. Une conséquence de cette instruction est que, lorsque l'on clique dans la fenêtre, la méthode mousePressed de l'instance indiquée en paramètre est invoquée.

Vous devez utiliser :

Le dessin obtenu est constitué de nombreux très petits segments.

Un corrigé pour cette première étape
Un second corrigé utilisant les classes internes, et donc un autre modèle de programmation.

Dans un deuxième temps, vous vous préoccuperez de la méthode paintComponent qui doit être définie pour que le dessin ne disparaisse pas si la fenêtre est momentanément recouverte. Vous devrez mémoriser l'ensemble des segments constituant le dessin. Vous pourrez définir une classe s'appelant par exemple Segment2D qui modélise un segment dans un plan à coordonnées entières.

La méthode paintComponent est automatiquement appelée quand la fenêtre a besoin d'être redessinée.

Le paquetage java.util contient une classe, la classe ArrayList, qui sert à gérer un tableau dont la taille est réglée pour vous en fonction du nombre de données, sans que vous ayez à vous préoccuper de la contenance de ce tableau. Nous vous conseillons d'utiliser cette classe. cette classe est générique. GVous pourrez é :
    ArrayList<Segment2D> segments = new ArrayList<Segment2D>(); S'il vous reste du temps, vous pouvez ajouter une liste de choix pour choisir la couleur du tracé, ou bien faire que les couleurs soient choisies au hasard pour chaque segment.

Corrigé