Descriptif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 

Swing - Interface Homme-Machine

5.6. Les listes

5.6.1.JComboBox

Ce composant représente une liste déroulante, dans laquelle l’utilisateur peut choisir un seul élément à la fois. Il est utilisé pour présenter une liste de valeurs possibles, au sein desquelles l’utilisateur effectue son choix. JComboBox est en fait constitué d’un composant JList (étudié dans le point suivant) et d’un JBouton.
Le composant JComboBox ainsi que les composants JTable, JList, et JTree qui vont vous être présentés dans les parties suivantes peuvent être qualifiés de complexe, en ce sens qu’il est possible de les paramétrer très finement.
Il est bien sûr possible d’utiliser ces composants de façon très sommaire, en appliquant tels quels les constructeurs les plus simples. Toutefois on verra pourquoi la personnalisation des composants complexes n’a pas de repercussions néfastes en terme de mémoire.

Voici la liste des différents constructeur de cette classe :
  • JComboBox() : crée une comboBox avec un modèle par défaut
  • JComboBox(Vector) : crée une comboBox qui contient les éléments d’un vecteur
  • JComboBox(Object[ ]) : crée une comboBox qui contient les éléments d’un tableau
  • JComboBox(ComboBoxModel) : crée une comboBox qui contient les éléments d’un modèle

Voici la liste des méthodes les plus utilisés pour ce composant :
  • addActionListener(ActionListener) : ajoute un ActionListener à la comboBox
  • addItem(Object) : ajoute un objet à la liste
  • getSelectedIndex() : retourne l’index (int) correspondant à la sélection
  • getSelectedItem() : retourne l’objet correspondant à la sélection
  • insertItemAt(Object, int) : insère un objet à l’emplacement spécifié (index)
  • paramString() : retourne la chaîne correspondante à la sélection
  • removeAllItems() : supprime tous les objets de la comboBox
  • removeItem(Object) : supprime un objet de la liste
  • removeItemAt(int) : supprime un objet de la liste à partir de son index
  • setEditable(boolean) : rendre éditable ou non la comboBox
  • setEnabled(boolean) : activer / désactiver le composant
  • setMaximumRowCount(int) : définit le nombre de lignes affichables sans ascenseur
  • setModel(ComboBoxModel) : définit le modèle de données que doit utiliser la comboBox
  • setSelectedIndex(int) : définit l’objet à sélectionner par son index (0  1er objet)
  • setSelectedItem(Object) : définit l’objet existant à sélectionner dans la combo Box

5.6.2.List box (JList)

Le composant JList est assez similaire à JComboBox. JComboBox est en effet basé sur un composant JList, mais il utilise un modèle de sélection (ListSelectionModel) qui permet uniquement la sélection unique (SINGLE_SELECTION_ONLY). Le modèle de sélection de JList supporte quand à lui trois types de sélections dont nous parlerons dans ce chapitre.
Le JList tout comme JTree et JTable (chapitres suivants) à la propriété d’afficher une liste de valeurs construite à partir d’un vecteur d’objets. Les objets construits ne doivent respecter qu’une seule contrainte qui est d’implémenter une fonction toString() qui retourne ce qui doit être affiché.

Voici la liste des différents constructeur de cette classe :
    • JList() crée une JList avec un modèle par défaut
    • JList(Vector) crée une JList qui contient les éléments d’un vecteur
    • JList(Object[]) crée une JList qui contient les éléments d’un tableau
    • JList(ListModel) crée une JList qui contient les éléments d’un modèle existant

Voici la liste des méthodes les plus utilisées pour ce composant :
    • getModel() retourne le modèle associé à la liste
    • setModel(ListModel) définit le modèle associé à la liste
    • setListData(Object[]) définit les élements de la liste.
    • setListData(Vector) définit les élements de la liste.
    • addListSelectionListener(ListSelectionListener) ajoute un Listener à la liste
    • setSelectedIndex(int) définit la sélection courante par son index
    • setSelectedValue(Object, boolean) définit la sélection courante, le booleen indique s’il faut faire défiler la liste pour afficher l’élément
    • setSelectedInterval(int, int) définit un intervalle de sélection
    • getSelectedIndex() retourne l’index de la sélection courante
    • getMinSelectionIndex() retourne l’index du 1er élément de l’intervalle
    • getMaxSelectionIndex() retourne l’index du dernier élément de l’intervalle
    • getSelectedIndices() retourne une liste d’index d’éléments sélectionnés
    • getSelectedValue() retourne l’objet correspondant à la sélection courante
    • getSelectedValues() retourne une liste d’objets correspondant aux éléments sélectionnés
    • setSelectionMode(int) définit le mode de sélection
    • getSelectionMode() retourne le mode de sélection de la liste
    • clearSelection() désélectionne tous les éléments
    • isSelectionEmpty() retourne un booléen vérifiant : aucun élément sélectionné
    • isSelectedIndex(int) retourne un booléen vérifiant : index i sélectionné
    • ensureIndexIsVisible(int) génère un défilement afin que l’index soit visible
    • getFirstVisibleIndex() retourne l’index du 1er élement visible
    • getLastVisibleIndex() retourne l’index du dernier élement visible
    • setVisibleRowCount(int) définit le nombre de lignes visibles
    • getVisibleRowCount() retourne le nombre de lignes visibles

Vous pouvez également personnaliser le mode de sélection. Voici les trois modes de sélection que vous pouvez utiliser avec le composant JList :



SINGLE_SELECTION :
Un seul élément peut être sélectionné à la fois




SINGLE_INTERVAL_SELECTION :
Plusieurs éléments contigus peuvent être sélectionnés.




MULTIPLE_INTERVAL_SELECTION (par défaut) :
Toute combinaison est possible.


Voici les deux possibilitées que vous avez pour modifier le mode de sélection :
JList maListe = new Jlist();
maListe.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
maListe.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


Détecter les changements de sélection
Parfois il est nécessaire de détecter un changement de sélection. Lorsque l’on veut par exemple modifier une partie de notre interface graphique lorsqu’une ligne est sélectionnée.

Il faut pour cela abonner le composant JList à l’aide de la méthode :
  • addListSelectionListener(ListSelectionListener)

L’interface à implémenter est donc ListSelectionListener, cette interface ne spécifie qu’une seule méthode à redéfinir qui est :
  • valueChanged(ListSelectionEvent e)
C’est dans cette méthode que vous pourrez spécifier l’action à effectuer lors du changement de selection dans votre JList.

Descriptif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Essentiels de cours Java
JavaEJB 3 - Les Entreprise Java Bean version 3 (JavaBeans)
Cet essentiel est la suite de « Entreprise JavaBean 2.1 ». Cependant, nous allons étudier les nouvelles spécifications 3.0 qui simplifient énormément le développement par rapport aux EJB 2.6/20/06
JavaSWT - Créer des interfaces graphiques performantes
SWT (Standard Widget Toolkit) est une librairie graphique qui vous permet de réaliser des applications graphiques Java beaucoup plus avancées et surtout plus rapide à l’exécution.1/29/06
JavaStruts - Un framework MVC pour vos applications J2EE
Struts est un framework open-source qui vous permet de gagner du temps, mais qui permet aussi de voir des applications complexes comme une suite de composants de base : Vues, Actions, Modèles. Vous gagnez ainsi en évolutivité et en lisibilité du code.1/13/06
JavaHibernate - Persistance objet - relationnel
Cet essentiel explique comment utiliser Hibernate afin de gérer la persistance objet relationnel au sein de vos applications Java.12/14/05
JavaIntroduction J2EE - Applications d'entreprise
Cours d'introduction aux diverses technologies et outils que l'on peut rencontrer dans le monde du Java orienté entreprise J2EE12/14/05
JavaEJB 2 - Les Entreprise Java Bean (JavaBeans)
L'objectif avec EJB2 (Entreprise JavaBeans) est d'introduire les concepts de l’Ingénierie Logicielle Basée sur les Composants.12/14/05
JavaDesign Pattern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design pattern" apportent une solution type à beaucoup de contraintes liées à la programmation objet.12/14/05
JavaArchitecture J2EE - Comment organiser son application J2EE
Ce cours explique comment créer un code modulable, lisible et évolutif afin d'assurer la pérénité de son application.12/14/05
JavaLes web-services - Publication de services
Le développement tend vers les technologies du Web. Il est difficile de faire la distinction entre les différents logiciels qui sont de plus en plus intégrés au Web. Les Web Services rentrent dans l’optique de différencier bien précisément les couches.12/14/05
JavaAnt - L'automatisation des tâches du programmeur
Ecrire des scripts afin d'exécuter les tâches récurrentes10/31/05
JavaIntroduction au langage Java - Présentation & historique
Présentation des origines du langage, ainsi que se buts premiers8/11/05
JavaLa Syntaxe Java - Bases & nomenclatures
Bases de la syntaxe du langage Java8/11/05
JavaLes Classes - Concepts & héritage
Base du développement objet en Java grâce aux classes8/11/05
JavaLes Exceptions - Gestion d'erreurs
Gérer les erreurs liés à la programmation8/11/05

Articles
Eclipse Europa : le successeur de Callisto
Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassu12/21/07
JavaCruiseControl : l’outil d’intégration continue à avoir dans sa boite à outils
CruiseControl est un projet open-source offrant de multiples fonctionnalités pour l’intégration, que ce soit pour des développements Java ou .Net. Il est courant sur un projet d’être plusieurs développeurs avec des tâches de développement réparties. Dans7/2/07
JavaEJB3 - Des concepts à l'écriture du code - Editions DUNOD
Consulter le résumé du premier ouvrage du laboratoire Sun de SUPINFO : EJB3 - Des concepts à l'écriture du code. Guide du développeur, éditions DUNOD.5/27/07
JavaPassage de certification Java Web (SCWCD)
Passer une certification est toujours un moment important car cela permet de mieux faire reconnaître ses compétences face à un recruteur ou un employeur.5/12/07
JavaGoogle Web Toolkit
Google Web Toolkit est un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Voilà comment il fonctionne.5/10/07
JavaJ2ME Vs SDE
Demain, les terminaux « légers » seront plus nombreux que les ordinateurs personnels, ce qui entraîne une bataille sur le choix d’une plateforme identique à tous ces terminaux… Aujourd’hui nous retrouvons le J2ME ainsi que le SDE qui s’offrent une rude b4/22/07

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée