Travaux Dirig´es no3
Java Avanc´e
—M1—
Mod`ele – Vue – Contrˆoleur (MVC)
Conception object, h´eritage, interfaces, d´el´egation, polymorphisme
xExercice 1. Graphiques 2D
On souhaite utiliser les fonctionnalit´es du SDK Java pour dessiner des formes `a l’´ecran.
Pour cela on utilisera les classes Graphics et Graphics2D du package java.awt et les
classes JFrame et JPanel du package javax.swing.
1. Lire la documentation et d´eterminer la fonction de chacune de ces classes ainsi
que les ´eventuels liens qui les connectent.
2. Cr´eer un nouveau package fr.javaavancee.td3.vue et cr´eer une classe
MyDisplay qui h´erite de la classe JPanel.
3. Ajouter une methode main(...) `a la classe MyDisplay avec le contenu suivant.
1public static void main(String []args){
2JFrame frame = new JFrame("Java Avanc´e - Graphic Display");
3frame.setSize(new Dimension(500,500));
4frame.setVisible(true);
5frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6
7MyDisplay d = new MyDisplay();
8frame.add(d);
9}
Trouver dans la documentation la fonction de chacune de ces instructions.
4. Red´efinir la m´ethode paintComponent() de la classe m`ere JPanel et utiliser
la m´ethode drawLine(...) de la classe java.awt.Graphics pour dessiner une
ligne `a l’´ecran.
5. La m´ethode paintComponent() est appel´ee lors du premier affichage du JPanel,
`a quel autre moment cette m´ethode est-elle appel´ee ?
6. Quelle diff´erence fondamentale y a t’il entre le package java.awt et le package
javax.swing.
xExercice 2. Mod`ele et vue
Dans cet exercice, vous allez modifier le package fr.dauphine.javaavance.td3.vue
1
pour en faire un package de visualisation pour les formes du package
fr.dauphine.javaavance.td1.
Attention : Les classes qui serviront `a repr´esenter les formes
g´eom´etriques (partie Mod`ele) doivent imp´erativement rester dans le package
fr.dauphine.javaavancee.td1 alors que les classes qui servent `a g´erer
l’affichage des formes `a l’´ecran (partie Vue) doivent aller dans le package
fr.dauphine.javaavancee.td3.vue.
1. Concevoir une architecture objet en utilisant les diff´erentes techniques vues
en cours (h´eritage, d´el´egation, interfaces, polymorphisme . . . ). Le package
fr.dauphine.javaavancee.td1 peut ´egalement ˆetre modifi´e si vous pensez que
c’est n´ecessaire.
2. Dessiner le diagramme des classes de votre architecture. Vous pouvez vous ins-
pirer de la repr´esentation UML (1).
3. Faire la liste des changements n´ecessaires pour ajouter une nouvelle forme. Dis-
cuter et d´efendre votre architecture objet avec le reste de la classe. Si n´ec´essaire,
r´eviser l’architecture.
4. Impl´ementer et tester votre architecture.
xExercice 3. Contrˆoleur
On souhaite maintenant ajouter un contrˆoleur pour modifier le mod`ele.
1. Ajouter un package fr.dauphine.javaavancee.td3.controleur.
2. L’interface java.awt.event.MouseMotionListener disponible dans le SDK
Java permet de r´eagir `a un mouvement de la souris. Lire la doc et comprendre
son fonctionnement.
3. Ajouter une classe MouseController impl´emente l’interface
java.awt.event.MouseMotionListener.
4. Impl´ementer la m´ethode mouseMoved(...) de l’interface MouseMotionListener
pour d´eplacer une forme du mod`ele lorsque que le pointeur se d´eplace.
(1). https://fr.wikipedia.org/wiki/Diagramme de classes
2
1 / 2 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 !