Une liste de choix est un composant graphique qui offre un choix entre plusieurs possibilités. L'utilisateur sélectionne son choix en cliquant sur l'item retenu.
Notre application prend l'aspects de gauche ci-dessous à: l'ouverture de la fenêtre et celui de droite si on clique sur l'item "Lou".
Peut-être pouvez vous aussi voir l'applet ci-dessous :
Si on veut que le choix d'un item provoque un changement
à l'exéion, on utilise le listener
tt>ListSelectionListener comme on peut le voir dans notre
programme.
Il est quelquefois inutile d'implémenter ce listener quand
il suffit d'aller voir l'item choisi quand on a besoin de
connaître cet item au cours de l'exécution.
Une liste de choix est modélisée par la classe javax.swing.JList.
La liste des items est ici fournie sous forme d'un tableau de chaînes de caractères (un tableau d'instances de la classe String), le tableau nomméchoix. On instancie ici la classe JList avec un constructeur prenant en paramètre un tableau d'Object(s), et on choisit comme paramètre le tableau choix. Les items de la liste sont donc ici des instances de la classe String . Les items sont écrit dans la liste en utilisant la méthode toString des items, ici donc la méthode toString de la classe String.
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FenetreListeNoms extends JFrame implements ListSelectionListener {
JList liste = new JList();
JLabel etiquette = new JLabel(" ");
public FenetreListeNoms() {
String choix[] = {" Pierre", " Paul", " Jacques", " Lou", " Marie"};
liste = new JList(choix);
liste.addListSelectionListener(this);
add(etiquette, BorderLayout.WEST);
add(liste, BorderLayout.EAST);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public void valueChanged(ListSelectionEvent evt) {
etiquette.setText((String)liste.getSelectedValue());
}
class EssaiFenetreNoms {
public static void main(String[] arg) {
new FenetreListeNoms();
}
}
Vous pouvez télécharger FenetreListeNoms.java.
Et si vous voulez voir le
code de l'applet....