Listes

Les listes sont manipulées en Swing avec la classe JList. Les principales fonctionalitées offertes sont les suivantes.

Utilisation simple

La classe JList a un contructeur qui prend en paramètre un tableau de valeur à mettre dans la liste. C'est la façon la plus simple de créer une liste avec des valeurs initiales.

La ou les valeurs sélectionnées sont récupérées par les quatre méthodes.

Modèle de données

Les éléments d'une liste sont gérés par un objet qui implémente l'interface ListModel. La classe DefaultListModel fournit une implémentation par défaut de cette interface. Cette classe dérive de la classe AbstractListModel qui est en quelque sorte l'implémentation minimale de l'interface. De cette classe dérivent aussi par exemple les classes BasicDirectoryModel et DefaultComboBoxModele. Il est conseillé de partir de cette classe pour écrire une nouvelle classe implémentant ListModel.

Lorsque qu'on crée une JList en passant un tableau en paramètre du contructeur, l'objet qui gère les éléments de la liste n'est pas de la classe DefaultListModel. Il est d'une classe interne à la classe JList. Pour être sûr que cette objet soit de la classe DefaultListModel, il faut le créer explicitement et le passer en paramètre du contructeur de JList.

Le modèle gérant les données de la liste est retourné par la méthode getModel. Il peut être changé par la méthode setModel(ListModel).

Modèle de selection

Il existe trois modes de selection des éléments qui sont les suivants.

Sous unix, les sélections des éléments se fait par des cliques de souris avec éventuellement les modificateurs Shift et Control. La sélection directe d'un élément (sans modificateur) désélectionne automatiquement tous les éléments sélectionnés auparavant. La sélection avec Shif inclut tous les éléments entre le dernier et l'avant-dernier sélectionnés. La sélection avec Control permet de sélectionner de nouveaux éléments sans désélectionner ceux qui le sont déjà.

Le mode de sélection peut être changé en appelant la méthode setSelectionMode(int) qui prend en paramètre une des constantes SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION ou MULTIPLE_INTERVAL_SELECTION définies dans l'interface ListSelectionModel.

La gestion des éléments sélectionnés est déléguée à un objet qui implémente l'interface ListSelectionModel. La classe DefaultListSelectionModel fournit une implémentation par défaut de cette interface.