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

Résolu
tomski Messages postés 48 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 24 décembre 2009 - 29 juil. 2009 à 11:08
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!
(_.:~:._)

4 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
29 juil. 2009 à 11:29
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.
3
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
30 juil. 2009 à 10:03
A quoi ça sert de faire
switch(n)


c'est pas plutôt
switch(selectionsLSTSOCIETE[n])
3
tomski Messages postés 48 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 24 décembre 2009
30 juil. 2009 à 09:58
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?



(_.:~:._)
0
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
Thats right!
maintenant c bon :) muchas gracias


(_.:~:._)
0
Rejoignez-nous