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

 Java Discussion :

Déselectionner item jComboBox


Sujet :

Java

  1. #1
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut Déselectionner item jComboBox
    Bonsoir,

    J'ai un problème tout bête... Et j'espère trouver une réponse ^^

    J'ai un code tout simple, une jComboBox avec des string dedans... Enfin bon, dans le cas réel ce n'est pas ça mais aucune incidence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DefaultComboBoxModel model = new DefaultComboBoxModel();
    jCB_Liste = new javax.swing.JComboBox(model);
    model.addElement(new String("Tata"));
    model.addElement(new String("Tete"));
    model.addElement(new String("Titi"));
    model.addElement(new String("Toto"));
    model.addElement(new String("Tutu"));
    model.addElement(new String("Tyty"));
    Le truc, c'est qu'une fois les items ajoutés...

    Je me retrouve avec une jComboBox où le premier item est sélectionné.

    Mais j'aimerai vraiment qu'il soit déselectionné...

    J'ai testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jCB_Liste.setSelectedIndex(-1);
    setSelectedIndex
    public void setSelectedIndex(int anIndex)
    Selects the item at index anIndex.

    Parameters:
    anIndex - an integer specifying the list item to select, where 0 specifies the first item in the list and -1 indicates no selection
    Throws:
    IllegalArgumentException - if anIndex < -1 or anIndex is greater than or equal to size
    Pensant que le -1 indiquant une "non sélection" me permettrait également de déselectionner la liste...

    Mais bon forcément ça ne marche pas

    Avez vous une idée ?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Bonsoir,

    Est-ce que tu as essayé avec setSelectedItem(null), il me semble que ça déselectionnait la séléction.

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Cela ne convient malheureusement pas au compilateur...

    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.get(ArrayList.java:324)
    at trafficaerien.i_trafficAerien.jCB_ListeAvionActionPerformed(i_trafficAerien.java:228)
    at trafficaerien.i_trafficAerien.access$000(i_trafficAerien.java:25)
    at trafficaerien.i_trafficAerien$1.actionPerformed(i_trafficAerien.java:71)
    at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
    at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
    at trafficaerien.i_trafficAerien.initComponents(i_trafficAerien.java:221)
    at trafficaerien.i_trafficAerien.<init>(i_trafficAerien.java:30)
    at trafficaerien.i_trafficAerien$7.run(i_trafficAerien.java:396)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Juste à l'ajout de la ligne qui associe le setSelectedItem(null) à ma jComboBox
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  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
    Bah il te suffit d'ajouter un item vide au début de ton modèle de combobox (enfin de ta liste d'objets).
    En général c'est pas une mauvaise idée en terme de design que de laisser le choix de ne rien saisir du tout.

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Cela ne convient malheureusement pas au compilateur...

    Juste à l'ajout de la ligne qui associe le setSelectedItem(null) à ma jComboBox
    Si on regarde ta stacktrace, ça ne vient pas de Swing, mais de ton programme

    Tu as rajouté un ActionListener à ta JComboBox et le fait de désélectionnner appelle ton ActionListener sauf que c'est avec une sélection -1 et je suppose qu'à la ligne i_trafficAerien.java:228 tu fais un list.get(selection) et c'est ici que ça plante.

    Dans ton action listener, il faut que tu vérifies que l'item sélectionné soit plus grand que -1

  6. #6
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut


    Tout juste Baptiste...

    Un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(jCB_Liste.getSelectedIndex() != -1)
    A résolu le problème.

    Maintenant, sachant que je n'ai besoin qu'au démarrage de l'application, est-ce que je laisse comme c'est actuellement (ce qui me va ^^ )
    Ou vaut-il mieux mettre un element null et le tester s'il est sélectionné ?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  7. #7
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Maintenant, sachant que je n'ai besoin qu'au démarrage de l'application, est-ce que je laisse comme c'est actuellement (ce qui me va ^^ )
    Ou vaut-il mieux mettre un element null et le tester s'il est sélectionné ?
    Tout dépend du besoin.

    Le fait de mettre un élément donne l'impression à l'utilisateur qu'il peut ne rien sélectionner, donc il faut permettre cet état de fait. Si par contre, ce champ est obligatoire, il n'est pas intéressant de mettre un élément null, il vaut mieux tester à la fin s'il y a aucun élément sélectionné et le cas échéant, afficher une erreur

  8. #8
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Okay :3

    Merci beaucoup à vous

    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/02/2013, 22h31
  2. Associer une clé aux items JCombobox
    Par bender86 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 06/11/2011, 23h50
  3. Filtrage des items JComboBox
    Par JTABLE dans le forum Débuter
    Réponses: 4
    Dernier message: 23/08/2011, 13h24
  4. Afficher les items JComboBox sélectionnés dans un JTable
    Par alizee971 dans le forum Composants
    Réponses: 3
    Dernier message: 16/08/2008, 23h05
  5. Changement d'item JComboBox
    Par Cartman.inc dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 28/02/2007, 19h14

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