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

  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 : 56
    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 : 56
    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

  7. #7
    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 : 56
    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
    Avec ActionEvent, il n'y a pas d'état SELECTED ou DESELECTED, alors, forcément, la méthode getItemListener() ne sert à rien (de toute manière, elle est inutile pour ce que tu veux faire, elle servait juste dans mon exemple pour afficher en clair l'état).

    Tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    combo.addActionListener(e-> {
    			System.out.println("Sélection: " + combo.getSelectedItem());			
    });
    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.

  8. #8
    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
    Merci pour votre soutien et pour vos répenses je sais que j'ai trop de problème et question mais c 'est sa la programmation ! j'ai autre question svp si j’effectue un teste sur les items de ComboBox "chaîne de caractère " le teste ne passe pas même avec la méthode .toString() !pourquoi?



    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
    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.addActionListener(new actionListener());
     
     
     
     
        }
        public class actionListener implements ActionListener{
    public void actionPerformed(ActionEvent ae){
     
          if(combo.getSelectedItem().toString()=="un"){
             comboitem.addItem("chiffre1");
          }
          else if(combo.getSelectedItem().toString()=="deux"){
             comboitem.addItem("chiffre 2 ");
          }
          else if(combo.getSelectedItem().toString()=="troix"){
             comboitem.addItem("chiffre  3");
          }} 
     
    }
         @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>                        
     
     
        public static void main(String args[]) {
     
            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(nbr_interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(nbr_interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(nbr_interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(nbr_interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
     
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        new nbr_interface().setVisible(true);
                    } catch (ClassNotFoundException ex) {
                        Logger.getLogger(nbr_interface.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (SQLException ex) {
                        Logger.getLogger(nbr_interface.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            });
        }
     
     
    }

  9. #9
    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 : 56
    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
    En Java, on ne teste pas l'égalité de String avec == (qui est l'opérateur d'identité, pas d'égalité), mais avec equals().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String string = "value";
    /*...*/
    if ( string.equals("value") ) {
       /*...*/
    }
    if ( "value".equals(string) ) {
       /*...*/
    }
    Dans ton cas, utiliser un switch va simplifier le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch(combo.getSelectedItem().toString()) {
    case "un":
        comboitem.addItem("chiffre1");
        break;
    case "deux":
        comboitem.addItem("chiffre 2");
        break;
    case "trois": // et pas "troix"
        comboitem.addItem("chiffre 3");
        break;
    }
    Une autre solution qui t'éviterait un test : stocker dans la combo des instances d'une classe de représentation.

    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
    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());
    		JComboBox<Item> combo = new JComboBox<>(Item.values());
     
    		JComboBox<String> comboitem = new JComboBox<>();
     
     
    		GridBagConstraints gbc = new GridBagConstraints();
    		gbc.gridx=0;
    		gbc.gridy= GridBagConstraints.RELATIVE;
    		panel.add(combo, gbc);
    		panel.add(comboitem, gbc);
    		panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    		frame.add(panel);
     
    		combo.addActionListener(e-> {
    			comboitem.addItem(((Item)combo.getSelectedItem()).getItem());
    		});
     
     
    		frame.pack();;
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    	public enum Item {
    		UN("chiffre 1"),
    		DEUX("chiffre 2"),
    		TROIS("chiffre 3");
     
    		private final String itemstring;
    		private Item(String itemstring) {
    			this.itemstring=itemstring;
    		}
     
    		public String getItem() {
    			return itemstring;
    		}
     
    		@Override
    		public String toString() {
    			return name().toLowerCase();
    		}
     
    	}
     
    }
    On pourrait même jouer avec les renderers :
    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
    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());
    		JComboBox<Item> combo = new JComboBox<>(Item.values());
    		combo.setRenderer(new DefaultListCellRenderer() {
    			@Override
    			public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
    					boolean cellHasFocus) {
    				return super.getListCellRendererComponent(list, value==null?null:((Item) value).name().toLowerCase(), index, isSelected,
    						cellHasFocus);
    			}
    		});
    		JComboBox<Item> comboitem = new JComboBox<>();
    		comboitem.setRenderer(new DefaultListCellRenderer() {
    			@Override
    			public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
    					boolean cellHasFocus) {
    				return super.getListCellRendererComponent(list, value==null?null:((Item) value).getItem(), index, isSelected,
    						cellHasFocus);
    			}
    		});
     
    		GridBagConstraints gbc = new GridBagConstraints();
    		gbc.gridx = 0;
    		gbc.gridy = GridBagConstraints.RELATIVE;
    		panel.add(combo, gbc);
    		panel.add(comboitem, gbc);
    		panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    		frame.add(panel);
     
    		combo.addActionListener(e -> {
    			comboitem.addItem(((Item) combo.getSelectedItem()));
    		});
     
    		frame.pack();
    		;
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    	public enum Item {
    		UN("chiffre 1"), DEUX("chiffre 2"), TROIS("chiffre 3");
     
    		private final String itemstring;
     
    		private Item(String itemstring) {
    			this.itemstring = itemstring;
    		}
     
    		public String getItem() {
    			return itemstring;
    		}
     
    	}
     
    }
    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.

  10. #10
    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
    merci pour votre aimable collaboration

+ 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