Dans une nouvelle fenêtre JFrame, nous allons ajouter des menus.
Dans un second temps, ajouter un autre menu contenant des boutons à cocher (JCheckBoxMenuItem). Puis grouper-les (souvenez-vous des ButtonGroup).
Dans une nouvelle fenêtre, nous allons ajouter une barre d'outil. Pour cela, nous allons auparavant créer les boutons contenant des images pour mettre ceux-ci à l'intérieur de la barre d'outils.
Dans cet exercice, les boutons n'effectueront aucune action.
Réutiliser le programme précédent et ajouter au centre une liste contenant les fichiers du répertoire courant.
Dans un premier temps, afficher la liste des fichiers dans une
JList. Pour cela, utiliser le constructeur
JList(Object[])
(La méthode listFiles() permet d'obtenir
l'ensemble des fichiers d'un répertoire et
new File(".") correspond au répertoire courant).
Il existe une autre façon de faire en utilisant un modèle. Nous allons pour cela, implémenter le modèle de liste (ListModel) pour que celui-ci renvoie les fichiers contenus dans un répertoire.
class MyListModel extends AbstractListModel { public MyListModel(File file) { ... // a implémenter } public Object getElementAt(int index) { ... // a implémenter } public int getSize() { ... // a implémenter } }
On cherche à afficher la liste des arguments de la ligne de commande
dans une JList.
De plus, on cherche à ajouter une case à cocher
permettant de trier l'intérieur de la JList par ordre
croissant ou décroissant (on utilisera pour cela les méthodes
Arrays.sort() et
Collections.reverseOrder() du paquetage java.util).
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 liste 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.