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 :

Probleme avec une JComboBox et ComboBoxModel


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut Probleme avec une JComboBox et ComboBoxModel
    bonjour ,

    J'ai un problème avec une JComboBox que lorsque je cliques dessus rien ne se passe . voici le code :

    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
    public class VuePromotionCreation extends javax.swing.JFrame implements Observer {
     
        private ModeleDisciplines modeleDisciplines;
     
        private ModeleEtudiants modeleEtudiants;
     
        private ComboBoxDomainesModel modelDomainesComboBox;
     
        /** Creates new form PromotionCreation */
        public VuePromotionCreation() {
            initDomaines();  // cette méthode initialise le modèle de la ComboBox
            modeleDisciplines = new ModeleDisciplines(
                    ( (Metier.Etudes.Domaine)modelDomainesComboBox.getSelectedItem() ).
                    getDisciplinesWithOptions()
                            );
     
            modeleEtudiants = new ModeleEtudiants(null);
     
            initComponents();
            initTable();
            this.setLocationRelativeTo(null);
        }
     
    ......
     
    private void initDomaines() {
            modelDomainesComboBox = new ComboBoxDomainesModel(
                    FaçadeDomaine.getInstance().getToutLesDomaines()
                    );
     
            /*System.out.println(
                    FaçadeDomaine.getInstance().getToutLesDomaines().size());*/
        }
     
     
    ....
    private void bDomaineActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bDomaineActionPerformed
    // TODO add your handling code here:
            System.out.println("click");  
        }


    la méthode initComponents() contient le code d'initialisation suivant (bDomaine c'est la JComboBox):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bDomaine.setModel(modelDomainesComboBox);
            bDomaine.setRenderer(modelDomainesComboBox.new ListRenderer());
            bDomaine.addItemListener(new java.awt.event.ItemListener() {
                public void itemStateChanged(java.awt.event.ItemEvent evt) {
                    bDomaineItemStateChanged(evt);
                }
            });
            bDomaine.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    bDomaineActionPerformed(evt);
                }
            });

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    /*
     * ComboBoxEnseignantModel.java
     *
     * Created on 17 juin 2007, 20:54
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package Presentation.Promotion.Nouvelle.Modeles;
     
    import Metier.Etudes.Domaine;
    import java.awt.Component;
    import java.util.List;
    import javax.swing.ComboBoxModel;
    import javax.swing.DefaultListCellRenderer;
    import javax.swing.JList;
    import javax.swing.event.ListDataListener;
     
    /**
     *
     * @author bassim
     */
    public class ComboBoxDomainesModel implements ComboBoxModel {
     
        private final List<Domaine> domaines;
        private int elementSel;
        /** Creates a new instance of ComboBoxEnseignantModel */
        public ComboBoxDomainesModel(List<Domaine> domaines) {
            this.domaines = domaines;
            elementSel = 0;
        }
     
        public void setSelectedItem(Object anItem) {
            elementSel = domaines.indexOf(anItem);
        }
     
        public Object getSelectedItem() {
            return domaines.get(elementSel);
        }
     
        public int getSize() {
            return domaines.size();
        }
     
        public Object getElementAt(int index) {
            return domaines.get(index);
        }
     
        public void addListDataListener(ListDataListener l) {
     
        }
     
        public void removeListDataListener(ListDataListener l) {
        }
     
        public class ListRenderer extends DefaultListCellRenderer {
     
            public Component getListCellRendererComponent(
            JList list,
    	Object value,
            int index,
            boolean isSelected,
            boolean cellHasFocus) {
     
               if (index ==-1) 
                   return  super.getListCellRendererComponent(list,
                        domaines.get(elementSel).getIntitule(),
                        index,isSelected,
                        cellHasFocus);
               else
                   return  super.getListCellRendererComponent(list,
                        domaines.get(index).getIntitule(),
                        index,isSelected,
                        cellHasFocus);
     
            }
     
        }
    }
    à un certain moment du développement ça marchait normalement ,les évènements étaient détectés normalement ,mais je sais pas à quoi j'ai touché pour que ça marche plus . J'ai du passer toute la matinée à chercher le probleme

  2. #2
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    j'utilise NetBeans pour affecter le modèle à la JComboBox et si je n'en utilise pas ,les changements d'item fonctionnent normalement ;

    Est ce que j'utilise mal le modèle ???
    pourtant j'ai rien changé avant que ça ne marche plus

    je suis bloqué là

  3. #3
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    bon j'ai réglé le problème depuis, et c'était la méthode equals(Object obj) qui était mal redéfinie.
    c'est un post un peu vieux, mais peut être que la réponse va aider quelqu'un un jour !

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

Discussions similaires

  1. probleme avec un JComboBox et une JTable
    Par claire13 dans le forum Composants
    Réponses: 8
    Dernier message: 25/04/2008, 15h29
  2. [C#] [Oracle] Probleme avec une procedure stockée
    Par sronin1 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/05/2004, 19h04
  3. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 14h24
  4. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 10h28
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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