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

AWT/Swing Java Discussion :

Changement du contenu de JComboBox suivant un item selectionné dans une autre JComboBox


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Par défaut Changement du contenu de JComboBox suivant un item selectionné dans une autre JComboBox
    Bonjour @ tous !

    Le problème paraît relativement simple mais je m'arrache les cheveux dessus :-/

    J'ai deux JComboBox qui contiennent la même liste d'entiers (par exemple de 1 à 4).

    Je souhaite que lorsque l'un est sélectionné dans une des deux JComboBox, il n'apparaisse plus dans la deuxième et inversement.

    Utiliser remove ne m'a pas satisfait car je souhaite que l'item ne soit pas supprimé... Je voudrais juste qu'il n'apparaisse pas...

    Une (même plusieurs, soyons fous !) idée(s) ? Merci beaucoup d'avance pour votre aide ! ;-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Salut, à mon avis il serait beaucoup plus simple de supprimer l' (ou les) item(s) de ta JComboBox puis de le(s) rajouter plus tard.

  3. #3
    Membre actif Avatar de arafat877
    Inscrit en
    Septembre 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 46
    Par défaut Solution
    Voici une solution que je souhaite marchera pour toi :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    package springSwinging;
     
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
     
    /**
     *
     * @author Arafat Bouchafra
     * @Date   4 déc. 2010
     * @Time   08:07:23
     */
    public class Test extends JPanel {
        private final JComboBox c1, c2;
     
        public Test() {
            super(new FlowLayout());
            String[] b = {"1", "2", "3", "4"};
            c1 =  new JComboBox(b);
            c2 =  new JComboBox(b);
     
            c1.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent e) {
                   c2.removeItem(c1.getSelectedItem());
               }
            });
     
            c2.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent e) {
                   c1.removeItem(c2.getSelectedItem());
               }
            });
     
            add(c1);
            add(c2);
        }
     
        public static void main(String... args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    JFrame f = new JFrame("Test Combo");
                    f.setContentPane(new Test());
                    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    f.setSize(500, 500);
                    f.setLocationRelativeTo(null);
                    f.setVisible(true);
                }
            });
        }
     
     
    }
     
     
    Bon courage

  4. #4
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Bonjour
    J'ai une idée peut être elle sera intéressante...
    Pour quoi ne pas jouer avec les focus?

    c'est à dire lorsque ton C2 gagne le focus elle sera remplie...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C2.addFocusLitener(new XXX());
    la classe XXX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class XXX implements FocusListener {
    public void focusGained(FocusEvent e) {
    			// TODO Auto-generated method stub
    C2.removeAllItem();//supprimer les anciennes valeurs...
     replissageC2();
     
    		}
     
    		public void focusLost(FocusEvent e) {
    			// TODO Auto-generated method stub
     
    		}
    }
    la méthode replissageC2() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void replissageC2() {
    for (int i=0;i<4;i++){
    String valC1=(String)C1.getSelectedItem();  // recupérer la valeur du C1
    int valC1=Convertir_en_Int(valC1);              // la convertir en int
    if (i!=valC1)                                          // Faire le test et affecter à C2
    C2.addItem(""+(i+1));
    }
    }

Discussions similaires

  1. Recopie d'un item table dans une autre
    Par Trebor_ dans le forum Débuter
    Réponses: 2
    Dernier message: 21/03/2008, 10h04
  2. Réponses: 8
    Dernier message: 17/10/2007, 18h37
  3. Affichage de l'id d'un item selectionné dans une combobox
    Par Quorthon dans le forum Windows Forms
    Réponses: 7
    Dernier message: 28/01/2007, 18h45
  4. VB.NET Récuperer item selectionné dans une listview
    Par thechris33 dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/01/2007, 13h09
  5. Réponses: 3
    Dernier message: 17/05/2006, 16h50

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