Recuperer plusieurs indices selectionnes dans une JList et remplir une String (c

[Résolu]
Signaler
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
-
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
-
Bonjour a tous,


voila, jai une JList et jessaye de recuperer les indices selectionnés, pas de souci ca marche.

Object selectedLSTSOCIETEValues[] = lstSociete.getSelectedValues();
int selectionsLSTSOCIETE[] = lstSociete.getSelectedIndices();

Apres quoi je fais ma boucle for, nickel, comment je detecte que tel et tel indices soient selectionnes en meme temps?


je voudrais recuperer cest si indice1 et indice2 sont selectionnes, ou si 1&3 ou 1&4, ou 2&1 ou 2&3 ou 2&4 ou 3&1 ou 3&2 ou 3&4 ou 4&1 ou 4&2 ou 4&3

car jai une String et que en fonction des indices selectionnes jai un ordre pour la remplir.

Typiquement je fais une requete SQL et en fonction des indices selectionnes dans ma liste je fais des "OR champs1 aa" +" OR champs2 bb"

etc


Lextrait du code que jai fait

ListSelectionListener lstSociete_listener = new ListSelectionListener() {
public void valueChanged(ListSelectionEvent listSelectionEvent) {
Object selectedLSTSOCIETEValues[] = lstSociete.getSelectedValues();
int selectionsLSTSOCIETE[] = lstSociete.getSelectedIndices();

for (int i 0, n selectionsLSTSOCIETE.length; i < n; i++) {
if (i == 0){
societe = "TOUS" ;
}else{
societe = " (";
switch(i){
//case 0: societe "" ;break;//Tous> do nothing
case 1: societe societe + "OR DivProd.nomdivisionproduction 'AB'" ;break;//
case 2: societe societe + "OR DivProd.nomdivisionproduction 'AS-COM'" ;break;//"A"
case 3: societe societe + "OR DivProd.nomdivisionproduction 'S'";break;
case 4: societe societe + "OR DivProd.nomdivisionproduction 'W'" ;break;
default: societe = "TOUS";break;//default "Tous"
}
societe = societe + ") ";
}//end if

Merci pour votre aide!
(_.:~:._)

4 réponses

Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
8
Salut,

je comprends pas la question : la méthode getSelectedIndices() te renvoie les éléments sélectionnés dans l'ordre croissant, donc tu sais si c'est l'indice 1&3 ou 1&4.
Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
8
A quoi ça sert de faire
switch(n)


c'est pas plutôt
switch(selectionsLSTSOCIETE[n])
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009

Salut Kirua12

Quand je selectionne l'indice 1 dans ma JLIst soit mon 2eme item, et ben on fait, il ne va pas dans le case du 1 mais dans le case 0 demon switch.
pourtant quand je fais un system.out.println de selectedLSTSociete, je trouve bien le "1"

Donc ca vient de ma boucle for....


societe = " (";
// for (int i 0, n selectionsLSTSOCIETE.length; i < n; i++) {
for (int n = 0; n < selectionsLSTSOCIETE.length; n++) {
switch(n){
case 0: societe "" ;break;//Tous> do nothing
case 1: societe societe + "OR DivProd.nomdivisionproduction 'AB'" ;break;//
case 2: societe societe + "OR DivProd.nomdivisionproduction 'ASC'" ;break;//"ASC"
case 3: societe societe + "OR DivProd.nomdivisionproduction 'S'";break;
case 4: societe societe + "OR DivProd.nomdivisionproduction 'W'" ;break;
default: societe = "";break;//default "Tous"
}

System.out.println(selectionsLSTSOCIETE[n] + "/" + selectedLSTSOCIETEValues[n]);
}//end for
societe = societe + ") ";
System.out.println("SOCIETE FINIE = "+societe);

Resultat dans ma console:
1/ABDC => OK cest bien l'indice 1
SOCIETE FINIE () au lieu de (OR DivProd.nomdivisionproduction 'AB') => ca prouve que ca va pas dans le case 1 mais ke ca passe dans le case 0....



est ce ke kelkun peut maider, pliz?



(_.:~:._)
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009

Thats right!
maintenant c bon :) muchas gracias


(_.:~:._)