Interfaces Graphiques avec Java

TD 5


Exercice 1 - Les arbres

Écrire un programme de visualisation simple de données arborescentes (ici, simplement du texte), permettant en particulier de représenter un noeud "Racine", sous lequel seront présents:

  1. Deux noeuds "Noeud 1" et "Noeud 2", chacun possédant deux sous noeuds "Sous Noeud 1" et "Sous Noeud 2". Ces différents noeuds seront ajoutés simplement, à la main.
  2. Un noeud "Tableau" dont les sous-noeuds, correspondant aux éléments du tableau (par exemple, de type String), seront ajoutés automatiquement quel que soit le tableau.
  3. Un noeud "Arguments" sous lequel seront insérés hierarchiquement les arguments éventuels de la ligne de commande: le premier argument sera représenté comme sous-noeud du noeud "Arguments", le second comme sous-noeud du noeud correspondant au premier argument, etc.

Par exemple, pour une commande de la forme java TD5.ArbreSimple un deux trois quatre la hierarchie représentant l'arborescence devra être de la forme:

Hierarchie à réaliser

Vous prendrez soin d'ajouter un ascenseur pour la visualisation de cette hierarchie.

Ajouter un champ de texte en bas de la fenêtre, permettant d'afficher le chemin de la racine jusqu'au noeud sélectionné, avec tous les sous-noeuds intermédiaires.


Exercice 2 - Navigateur d'un système de fichiers

On désire écrire un programme de visualisation de l'arborescence de fichiers d'un répertoire donné (par exemple, le home dir).

Pour cela, on choisit de définir la classe FileNode représentant les noeuds d'une arborescence correspondant à des répertoires ou à des fichiers. Cette classe devra donc implanter l'interface TreeNode, afin d'être utilisée dans un composant JTree.

De plus, il n'est pas souhaitable que l'ensemble de l'arborescence soit chargée au départ. On préfèrera, autant que possible, un chargement dynamique, à la demande, lors du déplacement dans la hierarchie et de l'ouverture des répertoires.

Par ailleurs, dans un champ de texte en bas de la fenêtre, on veut visualiser le chemin absolu (dans le système de fichier considéré) du fichier ou du répertoire sélectionné.

Par exemple, voici une exécution de java -Dhome.dir=/home/web/www/ TD5.Repertoire

Exemple de
navigateur simple

On pourra également faire afficher une fenêtre d'alerte lorsque la lecture d'un répertoire pose un problème (protection en lecture ou erreur quelconque d'entrée/sortie).

Parmi les améliorations souhaitables, on peut citer:


Etienne.Duris[at]univ-mlv.fr - © Université de Marne-La-Vallée - Février 2000 - http://www-igm.univ-mlv.fr/~duris