Table des matières

JList

Qu'est-ce qu'un JList ?

JList est un composant qui ** affiche un ensemble d'éléments ** sous forme de liste et permet à l'utilisateur de ** sélectionner un ou plusieurs ** éléments.

Ces éléments peuvent être de plusieurs natures, selon le besoin :

Déposer un JList

Pour créer une Jlist il faut créer en premier lieu une fenêtre. (** JFrame ** par exemple).

Créer une JFrame Form

Créer une Jlist

Paramétrer le Jlist

Les ** paramètres essentiels ** à considérer pour personnaliser sa JList (clic droit sur la Jlist > ** Properties **) sont :

Onglet Code





** Type Parameters **
le type des objets associés à la liste


** Variable Name **
le nom de la JList dans le code
jlist_code_propriete.jpg

Onglet Properties





** selectionMode **
le mode de sélection offert à l’utilisateur


** model **
Va définir le texte afficher

Onglet Events





** valueChanged **
événement qui se déclenche lorsque la valeur sélectionnée dans la liste change, du fait d’une action utilisateur

Alimenter le JList avec des String

public class MainWindow{
 
    private DefaultListModel<String> listModel;
}                
public MainWindow() {
    initComponents();
    listModel = new DefaultListModel();    
}
listModel.addElement("élément x");
jList1.setmodel(listModel);

Alimenter le JList avec des Objets

public class MainWindow{
    private DefaultListModel<T> listModel;
}

* ** Instancier ** le DefaultListModel dans le constructeur

public MainWindow() {
    initComponents();
    listModel = new DefaultListModel();    
}
// la classe T a ici un constructeur à 2 paramètres (String nom, String prénom)
T t = new T("Le Brun","Titouan");
listModel.addElement(t);
jList1.setmodel(listModel);

La présentation des données dans la JList est ** textuelle **. Elle dépendra donc de la valeur renvoyée par la méthode ** toString ** appliquée aux objets de type T

Exploiter la valeur sélectionnée dans la Jlist

Avec une Jlist on a la possibilité de ** récupérer ** l'élément sélectionné lorsqu'un utilisateur clique dessus grâce à la méthode ** getSelectedValue ** (libre au développeur d'utiliser les méthodes de l'objet pour obtenir ses caractéristiques propres).

T t = jList1.getSelectedValue();
System.out.println (t.getNom());  

Note : dans le cas d'une sélection multiple, la méthode getSelectedValuesList() renvoie la Collection des Objets sélectionnés.