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 :

[JList] Récupérer les valeurs d'une sélection multiple avec ActionListener


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Points : 74
    Points
    74
    Par défaut [JList] Récupérer les valeurs d'une sélection multiple avec ActionListener
    Bonjour,

    J'ai créé une JList à l'intérieur d'une Applet Java.
    Je souhaiterais pouvoir récupérer les valeurs sélectionnées dans cette JList après avoir cliqué sur Valider.


    Voici le code de l'Applet :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;   
     
     
    public class Test extends JApplet implements ActionListener  {
    	private static final long serialVersionUID = 42L;
     
            private JList ListeElements;	 
    	private JScrollPane DefilantElements;
     
    	GridBagLayout gridbag = new GridBagLayout();
    	JPanel pane = new JPanel(gridbag);
     
    	public void actionPerformed (ActionEvent ae) {
     
    	    if (ae.getActionCommand().equals ("Valider") ){
     
    		   System.out.println(ListeElements.getSelectedIndex);
     
    		 }
     
    	}
     
     
     
    	public void init()
    	{
     
    		System.out.println("Applet démarrée");	
     
    	}
     
    	public void start()
    	{
     
    	 add(pane,BorderLayout.NORTH);
     
     
    	 int tailleDeLaBoucle = 9;
    	 String[] ListeTest = new String[tailleDeLaBoucle];
    	 for (int i = 0; i < tailleDeLaBoucle; i++) {
    	 ListeTest[i] = "Elément "+i;
    	}
     
     
    	 JLabel LabAttr =  new JLabel ("Eléments : ");
    	 GridBagConstraints constraintsLabElem = new GridBagConstraints();
     
    	 constraintsLabElem.gridx=0;
    	 constraintsLabElem.gridy=0;
    	 constraintsLabElem.gridheight=1;
    	 constraintsLabElem.gridwidth=1;
    	 constraintsLabElem.weightx=1;
    	 constraintsLabElem.weighty=0; 
    	 constraintsLabElem.fill = GridBagConstraints.HORIZONTAL;
    	 constraintsLabElem.anchor = GridBagConstraints.CENTER;
    	 pane.add(LabElem, constraintsLabElem);
     
     
     
    	 ListeElements = new JList(ListeTest);
     
    	 GridBagConstraints constraintsListe = new GridBagConstraints();
    	 constraintsListe.gridx=0;
    	 constraintsListe.gridy=1;
    	 constraintsListe.gridheight=9;
    	 constraintsListe.gridwidth=1;
    	 constraintsListe.weightx=0;
    	 constraintsListe.weighty=0;     
    	 constraintsListe.fill = GridBagConstraints.HORIZONTAL;
    	 constraintsListe.anchor = GridBagConstraints.CENTER;
     
    	 DefilantElements = new JScrollPane(ListeElements);
    	 pane.add(DefilantElements, constraintsListe);
     
    	}
    }
    J'ai déjà un ActionListener qui détecte le clic sur le bouton Valider.

    Le problème est je ne sais pas comment récupérer les valeurs de plusieurs sélections multiples dans la JList.
    Si je sélectionne plusieurs valeurs dans la liste et que je clique sur "Valider", j'obtiens uniquement la valeur d'index du premier élément sélectionné.

    Quelqu'un saurait-il comment récupérer tous les éléments sélectionnés?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeElements.getSelectedIndices();
    "Returns an array of all of the selected indices, in increasing order."

  3. #3
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    En utilisant :

    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
     
    ...
    int[] indexSel;
     
    GridBagLayout gridbag = new GridBagLayout();
    JPanel pane = new JPanel(gridbag);
     
     
    JTextField Param1 = new JTextField ();
    JTextField Param2 = new JTextField ();
     
    JTextArea AireSortie = new JTextArea();
     
     
     
    public void actionPerformed (ActionEvent ae) {
     
    if (ae.getActionCommand().equals ("Valider") ){
     
    indexSel = ListeElements.getSelectedIndices();
    System.out.println(indexSel);
    j'obtiens comme résultat : "[I@17a29a1".

    Or, je souhaiterais obtenir des résultats du type : "2, 3".

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Pour détecter correctement les événement de selection et de déselection à l'intérieur d'une JList il faut utiliser un ListSelectionListener...

    Ensuite si tu lisais la doc tu verrais que tu récupères un tableau en appelant cette méthode... donc il te faut le parcourir pour imprimer son contenu. Ici tu te contentes d'imprimer sa référence.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Points : 74
    Points
    74
    Par défaut
    Merci pour ta réponse.
    Ca marche maintenant.

  6. #6
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeElements.getSelectedIndices();
    "Returns an array of all of the selected indices, in increasing order."
    J'aurai dû traduire .

    "Retourne un tableau de tout les indices sélectionnés, par ordre croissant"

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

Discussions similaires

  1. [XL-2007] Comment récupérer les valeurs d'une plage nommée avec le gestionnaire de nom
    Par Mamadou79 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2010, 10h50
  2. récupérer les valeurs d'une zone de liste à sélection multiple
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 21h19
  3. Réponses: 1
    Dernier message: 30/10/2007, 16h30
  4. Réponses: 4
    Dernier message: 13/11/2006, 17h49

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