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 :

Problème jcombobox affichage doublé


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    etudient_master
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudient_master

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Par défaut Problème jcombobox affichage doublé
    Bonjour,
    j'ai un problème d'affichage combobox , m'affiche toujour le dernier element avec element selectionner c à d
    ie.getItem() m'affiche deux items au lieu d'un seul item (item selectionner) voici mon programme :

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Panel;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import nombre_app.Connection_bdd;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
     
     
     
    public class nbr_interface extends javax.swing.JFrame {
     
        private Panel p=new Panel();
        private final JComboBox combo=new JComboBox();
        private final JComboBox comboitem=new JComboBox();
        private JLabel lb=new JLabel("Nombre : ");
         private JLabel lbitem=new JLabel("Nombre selectionner : ");
        Connection con=null;
        Statement st;
        ResultSet rs;
        int id;
     
        public nbr_interface() throws ClassNotFoundException, SQLException {
            initComponents();
     
           this.setTitle("Nombre");
           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           this.setSize(500,300);
           p.setBackground(Color.white);
           p.setPreferredSize(new Dimension(400,200));
           p.setLayout(new BorderLayout());
           Panel contenu=new Panel();
           p.add(contenu , BorderLayout.NORTH);
           combo.setPreferredSize(new Dimension(200,30));
           lb.setPreferredSize(new Dimension(200,30));
           lbitem.setPreferredSize(new Dimension(200,30));
           contenu.add(lbitem);
           contenu.add(comboitem , BorderLayout.SOUTH);
     
           comboitem.setPreferredSize(new Dimension(200,30));
     
     
           contenu.add(lb);
           contenu.add(combo);
           this.setVisible(true);
           this.setContentPane(p);
           Connection_bdd conn=new Connection_bdd();
           con=conn.getCon();
           st=con.createStatement();
           String sql="select name_n from nombre1";
     
          rs=st.executeQuery(sql);
          while(rs.next()){
     
     
     
          combo.addItem(rs.getString(1));
     
     
     
          }
          combo.addItemListener(new Itemlistener());
        }
     
     
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 400, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 300, Short.MAX_VALUE)
            );
     
            pack();
        }// </editor-fold>                        
     
        class Itemlistener implements ItemListener {
     
     
     
     
     
        @Override
        public void itemStateChanged(ItemEvent ie) {
     
            comboitem.addItem(combo.getSelectedIndex());
           System.out.println(ie.getItem());
        }
     
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème avec ItemListener/ItemEvent, c'est que deux évenements sont générés, un lorsqu'un élément se déseclectionne, et un autre lorsque le nouvel élémént se sélectionne. Il faut tester l'état de l'évenement.

    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
    public class ComboDemo {
     
    	public static void main(String[] args) {
     
    		JFrame frame = new JFrame("Démo");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JPanel panel = new JPanel(new GridBagLayout());
    		String[] items = {"item 1","item 2","item 3"};
    		JComboBox<String> combo = new JComboBox<>(items);
    		combo.addItemListener(e->{
    			System.out.println("State change: " + toString(e.getStateChange()));
    			if ( e.getStateChange()==ItemEvent.SELECTED ) {
     
    				// ici je prends en compte qu'un nouvel élément est sélectionné :
     
    				System.out.println("Nouvelle sélection: " + combo.getSelectedItem());
     
    			}
    		});
    		panel.add(combo);
    		panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    		frame.add(panel);
     
    		frame.pack();;
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    	private static String toString(int stateChange) {
    		switch(stateChange) {
    		case ItemEvent.SELECTED:
    			return "SELECTED";
    		case ItemEvent.DESELECTED:
    			return "DESELECTED";
    		default:
    			return "UNKNOWN";
    		}
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    etudient_master
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudient_master

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Par défaut Problème résolu
    merci pour votre réponse le problème est résolu la solution c'est le teste effectue dans le cas de "selected item "

  4. #4
    Membre averti
    Femme Profil pro
    etudient_master
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudient_master

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Par défaut problème de premier item de combox
    Bonjour , mon problème c'est toujour quand je séléctionne le premier item de combobox1 n'affiche pas dans le deuxieme combobox2 pourquoi ?? ça marche trés bien avec les autres item .

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Le premier élément est toujours sélectionné par défaut, donc quand tu cliques dessus, il n'y a pas d’événement de sélection qui est déclenché.
    Utilise un ActionListener et ça déclenchera un événement à chaque sélection, même si l'élément l'est déjà.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti
    Femme Profil pro
    etudient_master
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : etudient_master

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Par défaut
    mais le problème q'avec Actionlistener (actionPerformed(ActionEvent ae)) on trouve pas la fonction getItemListener(getStateChange()==ItemEvent.SELECTED) le problème qui est résolu déjà avec cette option maintenant je trouve autre problème avec ActionListener y a pas cette option

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

Discussions similaires

  1. Problème d'affichage d'untableau à double entrée
    Par Personne.c dans le forum Débuter
    Réponses: 6
    Dernier message: 22/09/2015, 18h11
  2. Problème d'affichage JCombobox
    Par kaba90 dans le forum Composants
    Réponses: 0
    Dernier message: 22/04/2013, 09h38
  3. Réponses: 2
    Dernier message: 13/11/2012, 15h50
  4. [MySQL] problème affichage double requêtes erreurs bizarres
    Par nirvanaghost dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/05/2009, 09h19
  5. Problème d'affichage JComboBox
    Par reno_tidus dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 17/10/2007, 12h39

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