IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

JComboBox double liste d'items


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut JComboBox double liste d'items
    Bonjour,

    je voudrais programmer une JCombobox dont la liste des items serait issue d'une ArrayList 'A' ou d'une ArrayList 'B'.
    L'idée serait de la faire "basculer" rapidement sur l'une ou l'autre liste, sans être obliger de:
    * Vider complètement sa liste d'items
    * Reconstruire la liste en énumérant un à un les items de l'autre ArrayList.

    Existe-t-il un moyen ou une astuce permettant de faire cette bascule, ou dois-je me résoudre à employer la manière décrite ci-dessus ?

    @ bientôt...

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Echanger les modèles des deux combobox devrait suffire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ComboBoxModel temp = comboBox1.getModel();
    comboBox1.setModel(comboBox2.getModel());
    comboBox2.setModel(temp);
    Dès que tu bosse avec des composants swing il faut systématiquement penser aux modèles.

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci Sinok pour cette idée,

    si j'ai bien compris, mon application comporterait donc 2 ComboBox:
    * Une Cbx visible et utilisable, s'occupant initialement de la liste 'A'
    * Une Cbx non-visible s'occupant de la liste 'B'

    En cas de "permutation" de liste:
    * La Cbx visible et utilisable "pointerait" vers la liste 'B'
    * La Cbx non-visible "pointerait" alors vers la liste 'A'

    Est-ce que j'ai bien compris le fonctionnement ?

    Il y a un truc qui me turlupine dans la réponse:
    Dès que tu bosses avec des composants swing il faut systématiquement penser aux modèles.
    ... je n'ai que ça dans mon application ! Quel est le but ou l'intérêt de fonctionner avec des modèles ?
    Le cas des 2 ComboBox, je le comprends bien. Y a-t-il d'autres cas de figure ou situations pour lesquels le modèle est intéressant ?

    Merci & @ bientôt...

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    La seconde JComboBox est inutile... Il suffit d'utiliser une JComboBox avec deux modèles...

    Exemple rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	final DefaultComboBoxModel modelA = new DefaultComboBoxModel(
    			new Object[]{"A1", "A2", "A3", "A4"});
    	final DefaultComboBoxModel modelB = new DefaultComboBoxModel(
    			new Object[]{"B1", "B2", "B3", "B4"});
     
    	final JComboBox comboBox = new JComboBox(modelA);
     
    	JToggleButton buttonA = new JToggleButton("Modèle A", true);
    	buttonA.addActionListener(new ActionListener() {
    		@Override
    		public void actionPerformed(ActionEvent e) {
    			comboBox.setModel(modelA);
    		}
    	});
     
    	JToggleButton buttonB = new JToggleButton("Modèle B");
    	buttonB.addActionListener(new ActionListener() {
    		@Override
    		public void actionPerformed(ActionEvent e) {
    			comboBox.setModel(modelB);
    		}
    	});
     
    	ButtonGroup group = new ButtonGroup();
    	group.add(buttonA);
    	group.add(buttonB);	
     
    	Object[] message = {comboBox, buttonA, buttonB}; 
    	JOptionPane.showMessageDialog(null, message);

    Citation Envoyé par rtg57 Voir le message
    Quel est le but ou l'intérêt de fonctionner avec des modèles ?
    Le cas des 2 ComboBox, je le comprends bien. Y a-t-il d'autres cas de figure ou situations pour lesquels le modèle est intéressant ?
    Le modèle permet de bien séparer les données de ton composant graphique.
    Dans les cas simple cette séparation n'a pas beaucoup d'importance, mais dans des cas plus complexe cela peut être très utile, surtout que tu peux créer tes propres modèles.



    a++

  5. #5
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci pour ce post, c'est très clair.
    Je vais mettre en pratique tout cela.

    @ bientôt...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb code double liste
    Par clairette dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2006, 11h21
  2. double liste php
    Par clairette dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2006, 17h06
  3. Récupérer la liste des items d'un champs
    Par korntex5 dans le forum Bases de données
    Réponses: 6
    Dernier message: 11/01/2006, 15h50
  4. Probleme avec les double Liste chainees
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2005, 17h22
  5. [html]Liste d'items
    Par ThitoO dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/02/2005, 22h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo