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 :

Selection null avec un JComboBox ?


Sujet :

AWT/Swing Java

  1. #1
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut Selection null avec un JComboBox ?
    Bonjour,

    J'ai un JComboBox que j'initialise avec une liste d'objet, OK !
    A l'éxécution, la combo s'affiche correctement sans selection et je peux tout naturellement faire une selection dans la liste de choix proposées.

    Mais après avoir fait un choix, comment remettre ma sélection à null ? il n'y a pas de choix vide.

    Merci
    Nico

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    Salut,

    si j'ai bien compris tu veux "remettre a zero" la valeur du champ que tu as selectionnée et dont tu as sauvegardée la valeur dans une variable quelconque? dans tous les cas setselectedItem() et getselecteditem() peuvent être utiles pour agir siur ta variable sans compromettre le contenu de ta combo ( si je me trompe pas)

  3. #3
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Donc en gros tu veux remettre ta combo selectionner au premier element.

    JComboBox combo = ......


    ....traitement....

    combo.setSelectedIndex(0);

    J'espere que c'est ce que tu voulais!!

  4. #4
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    je crois que faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    box.setSelectedIndex(-1);
    permet de ne plus avoir de sélection.

  5. #5
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Oui effectivement on peut assigner l'index de la selection dans le code, mais en cours d'execution les utilisateurs n'ont que leur souris
    Et c'est bien setSelectedIndex(-1) pour vider la selection ou setSelectedItem(null)

    Je pensais ajouter un objet null en début de ma liste d'objet mais je ne suis pas convaincu que cela fonctionne, j'attendais une confirmation de votre part pour essayer. Car ca me parait bizare que ce fonctionnement ne soit pas en compte dans la JComboBox.

    Et je ne veux pas d'une solution avec un bouton qui appelerait le setSelectedIndex()

    Merci en tout cas d'avoir essayé,
    Nico

  6. #6
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    ben écoute de rien... mais tu n'avais pas dit que l'utilisateur pouvait retirer la sélection.
    En fait, je ne pense pas que ce soit dans l'esprit du JComboBox de permettre ca à l'utilisateur... mais tu n'as guère d'autres choix... à part ajouter une entrée "", je vois pas

  7. #7
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par xixi31
    ben écoute de rien... mais tu n'avais pas dit que l'utilisateur pouvait retirer la sélection.
    En fait, je ne pense pas que ce soit dans l'esprit du JComboBox de permettre ca à l'utilisateur... mais tu n'as guère d'autres choix... à part ajouter une entrée "", je vois pas
    +1
    Soit tu rajoutes une entrée vide (""), soit tu rend ton combo box editable : dans ce cas, l'utilisateur peut supprimer le contenu du champ, mais malheureusement il peut aussi taper autre chose... donc la solution est l'entrée vide. Après pour les test, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if ( combo.getSelectedItem().toString().length == 0)
    ... // Entrée vide
    else
    ... // Autre entrée

  8. #8
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Salut,

    J'ai le meme problème je voudrai avoir un JComboBox contenant des objet avec le premier element vide. Si tu trouves une solution ca m'intéresse.

    Pour l'instant j'ai un JCombobox qui contient des Objets et j'ai réécrit toString pour qu'il affiche un libellé contenu dans l'Objet.

  9. #9
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    J'ai fait un test en ajoutant une reference null en début de ma list et ca semble fonctionné, il me l'affiche bien à l'execution, par contre j'ai pas essayé en récupérant la valeur.

    J'integrais ca prochainement dans mon code pour confirmer.


    Merci à tous

  10. #10
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Citation Envoyé par N©O
    J'ai fait un test en ajoutant une reference null en début de ma list et ca semble fonctionné, il me l'affiche bien à l'execution, par contre j'ai pas essayé en récupérant la valeur.
    J'ai essayé avec la solution de mettre setSelectedIndex(-1)

    Si tu fais un getSelectedIndex() il te renverra -1.
    et pour getSelectedItem il te renverra null.

    Mais l'inconvénient c'est que si tu fais un ComboBox éditable tu ne peux pas récupérer la valeur (valeur saisie) de -1... exception outOfIndex. Pareil si tu modifies un libelle il renverra la valeur original de l'index sélectionné.

    Si quelqu'un à une idée pour un JComboBox éditable je suis preneur!!!

  11. #11
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    ba si ta combobox est editable il n'y a pas de probleme !
    Quand tu effaces le contenu de ta combobox, dans la methode setSelectedItem(Object item) de ton modele, si item a une valeur null ou vide tu ajoutes une reference null à ta liste, voir meme tu fais pointer sur l'index qui a déjà la référence null pour eviter de rajouter des elements à n'en plus finir.

    Nico

  12. #12
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Yep,

    Mais le setSelectedItem() se lance deux fois à chaque fois, comment faire pour qu'il ne se lance qu'une seule fois.

  13. #13
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Je n'utilise pas un modele permettant l'edition alors je ne peux pas t'aider, mais ca parait bizare ton fonctionnement, t'es sur que tu n'aurais pas ajouter un listener en trop ou qqs choses comme ca ?

    Par contre si dans ton modèle l'indice 0 contient une référence null et que ton setSelectedItem() fait pointer ta selection sur le l'indice 0 quand la valeur a ajouté est nulle, ca ne pose pas de problème si la méthode est appelée 2 fois de suite.

    Je me rend pas trop compte au niveau code, mais je penses que tu devrais y arriver

    Nico

  14. #14
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Oui, c'est bon j'ai réussi!!!!

    Merci pour ton aide ..............et désolé j'ai un peu skwaté ton post!!!

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

Discussions similaires

  1. Selection multiple avec JComboBox
    Par djibidl dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 11/04/2013, 20h14
  2. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  3. [AC-2003] Requete select, problème avec "or is null"
    Par sinifroth dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/10/2010, 22h14
  4. select entity avec parameter=null
    Par romano2003 dans le forum JPA
    Réponses: 1
    Dernier message: 09/03/2009, 17h14
  5. Requete select : jointure avec champs null
    Par Tidus159 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 06/06/2008, 13h31

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