Remarque : ce TP comprend deux parties relativement indépendantes : une sur les entrées/sorties, l'autre sur la réalisation d'un composant Swing. Le composant Swing peut être réalisé sans que la partie entrées/sorties ne fonctionne, et vice-versa.
Dans ce TP, nous allons réaliser un outil capable d'afficher un dessin simple, composé de traits de couleurs (appelés ici des figures). Une figure est une suite de segments. Dans le dessin donné en exemple pour la question 1, le "C" de CNAM est une figure composée de trois points ; le "A" est réalisé avec deux figures : un "V" inversé, et un trait horizontal.
Ces dessins sont représentés en mémoire par un modèle qui est donné dans le package tpSwing.model
.
La compréhension de ce modèle est assez simple : un Dessin est une liste de Figures
qui ont chacune une Couleur et contiennent une liste de PointFigure. Par défaut,
les figures ne sont pas fermées.
On ne demande pas dans ce TP d'avoir une approche strictement MVC (pas besoin d'implémenter le pattern observateur.
Vous avez le droit d'ajouter les méthodes dont vous pensez avoir besoin dans les diverses classes. Évitez simplement de modifier ou supprimer les en-têtes des méthodes existantes !
Complétez le composant "JDessin" pour qu'il puisse correctement afficher correctement un dessin.
DemoDessin
Vous devriez obtenir l'affichage suivant :
FIGURE rouge 100 30 40 67 25 12 10 37 FIN FIGURE bleu 10 20 30 50 FIN
Complétez la classe LecteurDessin
On fournit des tests pour tester cette classe, n'hésitez pas à les utiliser. Lisez-les aussi, cela vous permettra de comprendre plus facilement l'utilisation de la classe.
ApplicationDessin
, le menu "Ouvrir" est supposé permettre de lire un
fichier contenant une figure.
Complétez le code de la fonction lireFichier()
de application dessin pour que
le dessin soit correctement chargé.
Si vous pensez que c'est utile, vous avez le droit de modifier le code d'autres méthodes (par exemple de la classe JDessin). Cependant, ne changez pas les en-têtes.
Des fichiers de test sont disponibles dans le dossier dessin/
.