Recuperer plusieurs indices selectionnes dans une JList et remplir une String (c [Résolu]

Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
- - Dernière réponse : tomski
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
- 30 juil. 2009 à 11:07
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!
(_.:~:._)
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
3
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kirua12
Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
3
3
Merci
A quoi ça sert de faire
switch(n)


c'est pas plutôt
switch(selectionsLSTSOCIETE[n])

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kirua12
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
0
Merci
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?



(_.:~:._)
Commenter la réponse de tomski
Messages postés
48
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
24 décembre 2009
0
Merci
Thats right!
maintenant c bon :) muchas gracias


(_.:~:._)
Commenter la réponse de tomski