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 :

[JCombobox] Impossible de changer la sélection


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Par défaut [JCombobox] Impossible de changer la sélection
    Bonjour à tous !

    J'ai de gros soucis avec les combobox, et ça m'arrive régulièrement depuis plusieurs mois.

    Lorsque je créé un model et que je l'affecte il s'affiche correctement mais je n'arrive pas à changer la sélection que ce soit visuellement ou par le code.

    Je vous montre mon comboboxmodel :

    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
    class UserComboboxModel extends AbstractListModel implements ComboBoxModel{
    		private List<User> source;
    		private Object selectedItem;
     
    		public UserComboboxModel(List<User> users) {
    			this.source = users;
    		}
     
    		@Override
    		public Object getSelectedItem() {
    			return selectedItem;
    		}
     
    		@Override
    		public void setSelectedItem(Object anItem) {
     
    			selectedItem = anItem;
    			fireContentsChanged(this, -1, -1);
    		}
     
    		@Override
    		public Object getElementAt(int arg0) {
    			if(arg0 <= getSize()) {
    				return source.get(arg0);
    			}
     
    			return null;
    		}
     
    		@Override
    		public int getSize() {
    			return source.size();
    		}		
     
     
    	}
    Voici la façon dont j'affecte ce modèle (on ne sait jamais...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void populateCombobox(List<User> source) {
    		UserComboboxModel ucm = new UserComboboxModel(source);
    		cmbUsers.setModel(ucm);
    	}
    Et voilà.

    En gros il ne veut sélectionner sur le premier item pour les autres il ne veut rien savoir. Quoique je fasse la sélection est bloquée sur le premier item, même avec un setSelectedIndex(int index).

    C'est loin d'être la première fois que je rencontre ce problème.

    Est-ce un souci lié au niveau de mon code ?

    Je vous remercie d'avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Demande de précision...
    Bonjour,

    Dans votre code, vous utilisez List. S'agit-il de l'interface java.util.List ou de l'objet java.awt.List ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Par défaut
    Merci pour votre réponse.

    J'utilise l'interface java.util.List, et concrètement une Arraylist

    Edit: J'ai laissé mon cerveau mijoter un petit peu et j'en suis arrivé à me demander si celà pouvait venir de ma redéfinition de equals() et hashcode().
    Je l'ai regénéré à partir d'un autre champ et cette fois celà semble fonctionner correctement.

    J'en déduis que lorsqu'on sélectionne un élément la combobox vérifie si notre nouvelle sélection n'est pas identique à l'ancienne en utilisant equals() et dans mon cas il pouvait y avoir une égalité sur plusieurs objets qui pourtant sont bien différents, ce qui n'est plus possible maintenant.
    Je pensais plutôt qu'il se fierait au nouvel index sélectionné... et donc ce n'est pas le cas.

    Je marque le sujet comme étant résolu, je ne met pas en délestage au cas où ça pourrait sauver quelques heures de travail à quelqu'un d'autre

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

Discussions similaires

  1. Impossible de changer les attributs d'un dossier
    Par NeHuS dans le forum Autres Logiciels
    Réponses: 20
    Dernier message: 03/03/2006, 09h38
  2. Impossible de changer le fond d'un onglet
    Par karidrou dans le forum Access
    Réponses: 7
    Dernier message: 02/03/2006, 11h22
  3. [MFC]Impossible de changer le texte d'un LABEL
    Par jlassira dans le forum MFC
    Réponses: 7
    Dernier message: 01/03/2006, 16h39
  4. Impossible de changer Visible dans OnHide ou OnShow
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 10
    Dernier message: 21/06/2005, 13h24
  5. impossible de changer la valeur d'un hidden...
    Par Palmic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/05/2005, 12h06

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