TP Java no5: Le retour des robots
IUP I.I.E.S 1
13 Mai
A. Lemay
Objectifs du TP : Cr´eer des applications graphiques, utiliser la documentation, Javadoc, ...
Exercice 1: les robots reviennent
Nous allons revenir sur le TP num´ero 2. On y faisait bouger un petit robot. Nous allons
maintenant r´ealiser la fenˆetre dans laquelle le robot ´evolue. Commencez par r´ecup´erer le fichier
d´ecrivant la classe Robot que vous avez r´ealis´e (Robot.java1).
Question 1.1: Petite fenˆetre
Une fenˆetre en java est un objet de type Frame. Cet classe est d´ecrite sur la documentation de
l’API de Java (voir le site de sun http://java.sun.com/). Dans la documentation, on voit toutes
les m´ethodes dont on dispose pour manipuler une fenˆetre.
R´ealisez une petite application qui cr´ee une fenˆetre, puis l’affiche (m´ethode show()). Notez
que la classe Frame fait partie de la biblioth`eque java.awt (c’est indiqu´e en haut de la page de la
documentation de Frame). Vous devez donc ajouter la ligne suivante au d´ebut du fichier de votre
application pour pouvoir l’utiliser :
import java.awt.*;
Question 1.2: fenˆetre de robot
Une fenˆetre de robot sera une fenˆetre particuli`ere. Cr´eez la classe FenetreRobot. Celle-ci devra
”h´eriter” de la classe Frame. Elle disposera en outre d’un robot. Quand on cr´ee la fenˆetre, on cr´ee
´egalement ce robot. Utilisez les fonctions setTitle, setSize et setBackground pour mettre en forme
votre fenˆetre.
Question 1.3: et le robot ?
Nous allons maintenant nous int´eresser `a l’affichage du robot. La m´ethode qui affiche un fenˆetre
est la m´ethode paint() (la classe Frame h´erite de cette fonction grˆace `a la classe Container).
Cette fonction a la forme suivante :
public void paint(Graphics g)
Les objets de type Graphics permettent de faire des dessins. Utilisez cette classe pour dessiner
le robot.
Question 1.4: Fermez la fenˆetre
Vous avez sˆurement remarqu´e que notre fenˆetre souffre d’un s´erieux handicap : on ne peut pas
la fermer ! En effet, rien n’est pr´evu actuellement pour r´eagir lors des manipulations sur la fenˆetre
(tel que l’appui sur le bouton permettant de fermer la fenˆetre). L’objet qui permet ceci est un
´ecouteur de fenˆetre” (WindowListener). Pour utiliser cet objet, deux op´erations sont `a r´ealiser :
1. la classe que nous sommes en train de construire doit impl´ementer l’interface WindowListener
(recherchez dans la documentation sa description). Elle disposera alors de diff´erentes m´ethodes
1Si vous ne disposez plus de ce fichier, une copie est disponible sur le site web du cours.
pour r´eagir aux diff´erents ´ev´enements qui peuvent se produire. Il faudra alors indiquer que
lorsqu’on appuie sur le bouton pour fermer la fenˆetre, on ferme l’application (commande
System.exit(0);).
2. On doit ajouter l’objet qui va effectivement ”´ecouter la fenˆetre” et qui va activer les fonc-
tions qu’on vient d’´ecrire. Ajouter la commande addWindowListener(this); dans votre
constructeur.
Notez que l’interface WindowListener fait partie de la biblioth`eque java.awt.event. N’oubliez
donc pas d’ajouter import java.awt.event.*; au d´ebut de votre code.
Question 1.5: Move your body
On va maintenant faire bouger le robot `a l’aide du clavier. Il faut utiliser un ”´ecouteur de clavier”
(KeyListener). La d´emarche est la mˆeme que pour les ”´ecouteurs de fenˆetre”.
Les fonctions utilis´es prennent en entr´ee un ”´ev´enement de clavier” (KeyEvent). Vous pouvez
aller voir les d´etails de cette classe pour voir comment savoir quelle touche a ´et´e appuy´ee.
Question 1.6: t´el´eportation
On veut maintenant pouvoir ”t´el´eporter” le robot `a l’aide de la souris (lorsqu’on appuie quelque
part sur l’´ecran, le robot s’y place directement). La gestion de la souris se fait grˆace aux ”´ecouteurs
de souris” (MouseListener). ealisez ceci.
Exercice 2: Documentation
Question 2.1: Le robot
Nous allons maintenant cr´eer une petite documentation sur les classes que nous avons cr´ees.
Dans la classe Robot, observez les commentaires qui pr´ec`edent chacune des m´ethodes. Ceux-ci
sont de la forme suivante :
/**
* Cr´ee un robot aux coordonn´ees x et y en lui donnant un nom
*
* @param x la premi`ere coordonn´ee du robot
* y la deuxi`eme coordonn´ee du robot
* nom le nom du robot
*
*/
public Robot(int x, int y, String nom)
{
...
}
On indique ici des informations sur la m´ethode. Avec @param, on indique chacun des arguments,
suivi d’un commentaire sur l’argument. La fonction pr´esent´ee ici ne retourne rien (void). Si elle
avait retourn´e quelque chose, on aurait ajout´e
*
* @return voici un commentaire sur ce que renvoie la fonction
*
Utilisez la commande javadoc Robot.java pour g´en´erer une documentation automatiquement
sur la classe Robot. Consultez la avec votre navigateur.
2
Question 2.2: FenetreRobot
Commentez de la mˆeme mani`ere la classe FenetreRobot, Utilisez javadoc pour g´en´erer la docu-
mentation pour tous vos fichier java (javadoc *.java). V´erifiez avec votre navigateur.
Exercice 3: Applet Java
Question 3.1: Robot sur internet
On va maintenant mettre notre robot sur internet. Java permet de faire des applications qu’on
peut ins´erer directement dans une page web. On appelle ces applications internet des ”applets”.
La classe Applet d´ecrit ces applets. La classe Applet est fortement similaire `a la classe Frame aux
diff´erences suivantes :
pas besoin d’”´ecouteur de fenˆetre”, ce n’est pas une fenˆetre,
dans une applet, on n’utilise en g´en´eral pas de constructeur. Par contre, on utilise la fonction
init() pour initialiser notre applet (on y met tout ce qu’on mettrait habituellement dans le
constructeur),
certaines fonctions ne sont pas les mˆemes que pour les Frame.
R´ealisez la classe AppletRobot qui r´ealise la mˆeme chose que FenetreRobot sous forme d’applet.
Vous pouvez tester votre applet en r´ecup´erant le fichier test applet.html (vous pouvez l’ouvrir
avec emacs pour voir ce qu’il contient et le tester avec votre navigateur).
Question 3.2: Ardoise Magique
R´ealisez un programme, puis une applet qui permet de dessiner de la mˆeme mani`ere qu’une
ardoise magique (jetez un coup d’oeil sur http://www.grappa.univ-lille3.fr/˜lemay/java pour un
exemple).
3
1 / 3 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 !