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 :

[JComboBox] prob addItem


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut [JComboBox] prob addItem
    Bonjour,
    J'ai voulu creer une JComboBox contenant des IconImage, jusque là, ca fonctionne bien.
    Le problème survient lorsque je décide d'ajouter par exemple des String à cette JComboBox.Si je decide d'ajouter 1 seul objet String à la JCombo, ca me rajoute ce String à coté de chaque élément de la JCombo et je ne comprend pas pourquoi.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Je vous met un peu de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Object[] tout = new Object[4];
            //les élements de ma JComboBox
            tout[0] = new ImageIcon("img-cs/ps2.gif");
            tout[1] = new ImageIcon("img-cs/psp.gif");
            tout[2] = new ImageIcon("img-cs/xbox.gif");
            tout[3] = new ImageIcon("img-cs/x3.gif");
     
     
    MaCombo= new JComboBox(tout);
    Donc là ca m'affiche bien ce que je veux dans ma JCombo mais si je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    MaCombo.addItem("nouvelle item");
    A coté de chaque élément de ma JCombo ca me rajoute le "nouvelle item", alors que moi je voudrais biensur avoir cet élément en bas de ma liste.

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    J'ai pas le temps de m'y pencher maintenant, mais regarde ça. Ca pourra peut-être t'aider...

  4. #4
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Re,
    j'ai regardé et j'ai réalisé la même chose avec le code donné dans le liens, mais je n'arrive toujours pas à insérer un String à la fin de la JCombo.
    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
     
     
    class ComboBoxRenderer extends JLabel
                           implements ListCellRenderer {
     
     
        ImageIcon[] images = new ImageIcon[21];
     
        public ComboBoxRenderer(ImageIcon[] images) {
     
     
     
     
            this.images=images;
     
     
        }
     
     
     
        public Component getListCellRendererComponent(
                                           JList list,
                                           Object value,
                                           int index,
                                           boolean isSelected,
                                           boolean cellHasFocus) {
     
            int selectedIndex = ((Integer)value).intValue();
     
     
     
     
            ImageIcon icon = images[selectedIndex];
     
            setIcon(icon);
     
     
            return this;
        }
     
    }
    Et je creer ma JCombobox comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Cs = new JComboBox(intArray);
     
            ComboBoxRenderer renderer = new ComboBoxRenderer(tabImageIcon);
            renderer.setPreferredSize(new Dimension(150, 20));
            Cs.setRenderer(renderer);
            Cs.setMaximumRowCount(10);
    Donc ca me creer bien 21 ImageIcon dans la JcomboBox, mais je peux peux rien y ajouter(excepté des ImageIcon), je n'arrive pas à mélanger les ImageIcon avec des String.

  5. #5
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Je up n peu
    Je n'arrive toujours pas à mettre des simples String à la fin de ma JCombo sachant que celle-ci contient déjà des ImageIcon...

  6. #6
    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
    Il faut tout simplement que tu adaptes ton renderer selon le type d'objet qui est passé: forcément tu essayes de mettre une String dans une ImageIcon, ce qui dans l'ensemble n'est pas quelquechose de très compatible

    Donc grosso modo dans ton renderer fais quelquechose dans ce style (non testé donc je n'assure rien:

    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
     
        public Component getListCellRendererComponent(
                                           JList list,
                                           Object value,
                                           int index,
                                           boolean isSelected,
                                           boolean cellHasFocus) {
            if( value instanceof Integer) {
                int selectedIndex = ((Integer)value).intValue();        
                ImageIcon icon = images[selectedIndex];      
                setIcon(icon);
            } else {
                setText(value.toString())
            }
     
            return this;
        }

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

Discussions similaires

  1. [JComboBox] ne pas déclencher d'événement sur un addItem
    Par Djakisback dans le forum Composants
    Réponses: 9
    Dernier message: 28/05/2008, 17h39
  2. Prob avec JComboBox
    Par ShredLord dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/11/2007, 16h53
  3. JComboBox et addItem
    Par punisher999 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 27/04/2007, 06h29
  4. Prob: Deux JComboBox et un Jbutton
    Par diditin dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 06/06/2006, 16h59
  5. [JComboBox] itemStateChanged prob
    Par nicotine002 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 22/05/2006, 18h18

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