Vous êtes sur la page 1sur 4

IUT Informatique 2009/2010 AP1 – S4

INTERFACE GRAPHIQUE EN JAVA

TP n° 11 – Introspection des classes contenues dans un fichier jar


En utilisant un Jtree

Nombre de séances de TP encadrés : 2

Il s’agit dans ce TP de récupérer les classes contenues dans un fichier jar quelconque et
de les analyser par introspection pour afficher sous forme d’une arborescence les
attributs, constructeurs et méthodes de chacune d’elles comme le montre la figure qui
suit.

1) Créer le projet TP11 sous Eclipse. A la création du projet, choisir l’onglet


bibliothèque  ajout jar externes  paquetageStratego2009.jar

2) Importer dans le projet TP11 la classe IntrospectionClassePaquetage. Elle contient


une méthode qui permet d’extraire d’un fichier jar la liste des noms des classes qu’il
contient.

TPn°11 Programmation par objets en Java -1- 7


3) Dans une fenêtre, créer l’interface graphique proposée dans la figure précédente (cf.
annexe). D’autres classes intermédiaires pourront être créées.

4) Ajouter le traitement du clic sur le bouton « Choisir le fichier jar » : une fenêtre (de
type JFileChooser surgit pour sélectionner le fichier jar à introspecter. Lorsque
l’utilisateur a sélectionné le fichier et appuyé sur le bouton « ouvrir » (cf. figure
suivante), son nom est affiché dans le champ de texte dont l’étiquette est « fichier jar
à introspecter » tandis qu’au centre apparaît dans un panneau (JScrollPane)
l’arborescence (JTree) des classes introspectées.

5) Tester l’application avec le paquetage paquetageStratego2009.jar.

6) Créer sous eclipse le paquetage paquetageStrategoIhm2009.jar contenant les classes


graphiques du jeu de stratego du TP 9 et le stocker à la racine de votre workspace
sous eclipse (Fichier  exporter  java  jar file). On ne stockera dans le fichier jar
que les fichier .class des classes à instrospecter. Rajouter le fichier jar créé dans la
liste des fichiers jar externes de votre projet. Tester l’application avec ce nouveau
paquetage.

TPn°11 Programmation par objets en Java -2- 7


ANNEXES
Le composant JTree

Le composant JTree permet d’afficher des données sous forme d’arbre.


L’ajout d’un JTree à un composant de réceptable se fait de manière classique par
l’utilisation de la méthode add().
Les données sont affichées ligne par ligne, chaque ligne contenant une donnée de type
DefaultMutableTreeNode.
L’arborescence ci-dessous a été obtenue par le code suivant :

JTree arbre = new JTree();


// construire les noeuds de l'arbre
DefaultMutableTreeNode n1 = new DefaultMutableTreeNode("racine");
DefaultMutableTreeNode n2 = new DefaultMutableTreeNode("noeud 1");
DefaultMutableTreeNode n3 = new DefaultMutableTreeNode("noeud 1.1");
DefaultMutableTreeNode n4 = new DefaultMutableTreeNode("noeud 1.2");
DefaultMutableTreeNode n5 = new DefaultMutableTreeNode("noeud 2");
DefaultMutableTreeNode n6 = new DefaultMutableTreeNode("noeud 2.1");
DefaultMutableTreeNode n7 = new DefaultMutableTreeNode("noeud 2.1.1");
n1.add(n2);
n1.add(n5);
n2.add(n3);
n2.add(n4);
n5.add(n6);
n6.add(n7);
// définir le modèle de l'arbre à partir du noeud racine
DefaultTreeModel modele = new DefaultTreeModel(n1);
// associer le modèle le modèle de l'arbre au JTree
arbre.setModel(modele);

Le composant JFileChooser

Le composant JFileChooser permet de sélectionner un fichier dans l’arborescence du


Système de Gestion de Fichiers de l’utilisateur.

JFileChooser choix = new JFileChooser();


// afficher la fenêtre de dialogue et l’associer à la fenêtre
// parent
// l’entier retour récupère le choix de l’utilisateur « Ouvrir »
// ou « Annuler »
int retour = choix.showOpenDialog(fenêtreParent);
if (retour == JFileChooser.APPROVE_OPTION)
{
// traitement à faire si choix « Ouvrir » par exemple
// récupérer le nom complet du fichier sélectionné
String nom = choix.getSelectedFile().getAbsolutePath();
}
else
{
// traitement à faire si choix « Annuler »
// cas où retour = JFileChooser.CANCEL_OPTION
}

TPn°11 Programmation par objets en Java -3- 7


Le composant JScrollPane

Le composant JScrollPane est un composant de réceptacle muni de barres de


défilement horizontale et verticale afin de pouvoir visualiser des composants plus
grands que l’espace dans lequel ils sont visualisés.

JTree arbre = new JTree();



JScrollPane panneauArbre = new JScrollPane();
// associe l’arbre au panneau
panneauArbre.setViewportView(arbre);

TPn°11 Programmation par objets en Java -4- 7