Modèle, vue et controleur.
Dans un premier temps, dans une fenêtre, nous cherchons à afficher la liste des arguments de la ligne de commande dans une JList. Pour cela, utiliser le constructeur JList(Object[])
Dans un second temps, on cherche à ajouter un checkbox permettant de trier
l'intérieur de la JList par odre croissant ou décroissant
(on utilisera pour cela les méthodes Arrays.sort() et
Collections.reverseOrder()).
Créer pour cela une classe implémentant le
modèle de liste (ListModel) en héritant de AbstractListModel,
en redéfinissant les méthodes getElementAt() et getSize puis
en rajoutant une méthode sort(boolean order).
Utiliser le constructeur JList(ListModel) pour créer une list ayant
pour modèle la classe crée ci-dessus.
Enfin faire en sorte qu'un appel à la méthode sort() demande à la vue
(la JList) de se redessiner.
Remplacer dans l'exercice précédent la JList par un JComboBox. Le modèle à utiliser sera alors le ComboBoxModel.
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/ Repertoire
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: