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() ).