C. RECANATI

IHM Java Swing

DESS EID 2004/2005

 

 

 

 

 

TP n¡ 1

 

Exercice 1: le but de cet exercice est de créer une application qui mémorise un ensemble de points tirés aléatoirement et les affiche selon différents modes (sous forme de petits ronds, de petites croix, ou comme un polygone). On s’en servira ensuite dans un autre TP.

 

Un point sera une instance de la classe java.awt.Point. L’ensemble de points sera mémorisé dans un vecteur ensPts de la classe principale. Un champ mode (entier) indiquera le mode d’affichage des points. Il y aura trois modes d’affichage différents, définis par des constantes nommées :

- rond  : les points  seront dessinés sous forme de petits ovales;

- croix  : les points seront  dessinés sous forme de croix ;

- poly  : le polygone joignant les points sera dessiné ;

 

1) Ecrire une interface définissant les constantes pour le mode d’affichage dans un fichier séparé. Se servir de cette interface dans l’application pour initialiser le champ mode à rond.

2) Ecrire une méthode initAleatoire prenant trois paramètres: nb, le nombre de points que l’on souhaite stocker, et la largeur et la hauteur du cadre qui englobera les points. Cette méthode crée nb Points dont les coordonnées positives se situent dans le  cadre indiqué, et les stocke dans le vecteur ensPts de la classe principale.

F  Pour le tirage aléatoire des points, on trouvera dans la classe Math la méthode random() qui retourne un double compris entre 0.0 et 1.0. et la méthode round(double a) qui retourne l’entier long le plus proche de a.

 

Exercice 2:

Pour améliorer certaines procédures d’impression, écrire une méthode getClassName(Object  o) qui retourne la chaine du nom de la classe de l’objet sans le chemin complet des packages. Tester cette méthode avec des objets java.

F  On peut récupérer le nom complet de la classe d’un objet avec getClass  et getName puis rechercher dans la chaîne ainsi obtenue l’index qui correspond à la dernière occurrence du caractère ‘.’ (utiliser lastIndexOf).   En extraire alors la sous-chaîne recherchée qui commence à index+1 (utiliser substring) .

 

Exercice 3: le but de cet exercice est de tester et vérifier des objets File.

1) Ecrire une classe Test  qui crée un objet  File MonRep  avec l’instruction

            File monRep = new File («…/jdk1.3/src/java/io») ;

teste et imprime s’il s’agit ou non d’un répertoire.

 Elle crée ensuite un nouvel objet File avec

            File monFichier = new File (monRep,«File.java») ;

et imprime  si ce fichier existe, si on peut le lire, et si on peut écrire dedans.

2) Modifier le code précédent pour que l’application lise le nom du répertoire et celui du fichier en argument du programme.

3) Ecrire une classe permettant d’obtenir la liste de tous les fichiers d’un répertoire et de consigner la date de leur dernière modification.

F  utiliser les méthodes getAbsolutePath, getName et getParent pour imprimer les informations sur l’objet File répertoire initial. Récupérer ensuite un tableau de File contents avec la méthode listFiles  et  imprimer les éléments de ce tableau en indiquant à chaque fois s’il s’agit ou non d’un répertoire, et en donnant la date de leur dernière modification (créer un objet Date à partir de contents[i].last-Modified() ).