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

Composants Java Discussion :

Problème Renderer et JComboBox


Sujet :

Composants Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut Problème Renderer et JComboBox
    Bonjour,

    J'ai un JcomboBox dans laquelle j'ajoute des objets de type Dossier. Afin d'afficher le libellé de ces Dossier dans mon comboBox, j'ai créé un renderer comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class ComboRendererSiret extends DefaultListCellRenderer{
      private static final long serialVersionUID = 7666198635997879091L;
      public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){
        ComboRendererSiret c = (ComboRendererSiret)(super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus));
        if (_listDossiers != null){
          if (index>0){
            String libelledossier = ((Dossier)value).getLibelle() +  ": " + ((Dossier)value).getSiret();
            c.setText(libelledossier);
          }
        }
        return c;
      }
    }
    Le problème et que malgré le fait que la liste soit bien affichée (avec les libellés des "Dossier"), mon comboBox continue à afficher l'objet (projet.Dossier@456....).

    Une idée du problème?

  2. #2
    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
    As tu bien penser à affecter le renderer à ta ComboBox?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Lol, oui, vu que la liste déroulante du combobox est bien modifiée.

  4. #4
    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
    Celà veut dire que ta JComboBOx est editable et que dans ce cas il te faut également implémenter un Editor spécifique

    Alors dans ce cas là il te faut créer un Editor également implémentant l'interface ComboBoxEditor.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par sinok Voir le message
    Celà veut dire que ta JComboBOx est editable...
    Rien à voir avec un setEditable()? Parce que même avec un setEditable(false) cela ne résout rien.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Bon là je ne comprend plus, j'ai bien créé et affecté mon Editor et rien ne change

    Voici mon 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
     
    public class MyEditor extends JTextField implements ComboBoxEditor{
      public Component getEditorComponent(){
        return this;
      }
     
      public void setItem(Object anObject){
        setText(((Dossier)anObject).getLibelle());
      }
     
      public Object getItem(){
        System.out.print(getText());
        return getText();
      }
    }
    De plus, normal ou non, je ne rentre jamais dans mon getItem()...

    Le placement d'un setRenderer et setEditor n'a pas d'importance? On peut le placer avant ou après le remplissage du combobox?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    J'ai un début de réponse: lorsque je supprime ma condition sur l'index, j'ai bien le libellé attendu dans ma JcomboBox. Le problème est que je souhaiterais que le premier choix (index=0) soit "Choisissez un dossier"...
    Serait-ce un bug ou un comportement normal?

    [EDIT]J'ai résolu mon problème, qui venait surtout de mon manque de compréhension du fonctionnement d'un renderer
    Pour ceux que ça pourrait intéresser, j'ai ajouté à la main la première ligne "Sélectionner un dossier" à mon JComboBox, et dans mon renderer j'ai ajouté une condition if (value instanceOf Dossier) afin de ne modifier le libellé que s'il y en a besoin.

    Merci Sinok pour ton aide.

    Bonne journée .

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

Discussions similaires

  1. Problème rendered de colunm dans dataTable
    Par yog35 dans le forum JSF
    Réponses: 2
    Dernier message: 30/04/2009, 14h24
  2. Problème d'affichage JComboBox
    Par reno_tidus dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 17/10/2007, 12h39
  3. problème avec un JComboBox
    Par amazircool dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 25/09/2007, 02h26
  4. problème avec test JComboBox
    Par ulysse031 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 29/04/2007, 11h41
  5. problème avec un JCombobox
    Par legillou dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 09/01/2006, 08h56

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