Bonjour à tous,
j'ai une petite question sur les listbox.
J'ai une série d'objets de même type.
Je voudrais que l'utilisateur puisse choisir l'un de ces objets
et j'effectue ensuite un traitement en fonction du résultat de
son choix.
Jusqu'à présent je n'ai rien trouvé de mieux que créer une liste
contenant le nom (de type String donc) de chaque objet :
de passer cette liste à ma listbox et de récupérer le résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 List maListe = new ArrayList<String>(); maListe.add("Choix1"); maListe.add("Choix2"); maListe.add("Choix3"); maListe.add("Choix4");
du choix (un String toujours forcément).
Mais cela fait je dois encore faire une succession atroce de if...else...if
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Iterator iter = maListe.iterator(); Object [] menu_options = new Object[maListe .size()]; int i=0; while (iter.hasNext()) menu_options[i++] = iter.next(); String resultat = (String)JOptionPane.showInputDialog( null, "Choose one ?", "Question ", JOptionPane.QUESTION_MESSAGE, null, menu_options, menu_options[0]);
pour trouver l'objet qui correspond à ce résultat de type String afin d'effectuer le traitement adéquat ! (le switch ne fonctionnant pas avec les
String...)
Il y a forcément moyen de faire plus simple, qqun aurait une idée ?
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 if (resultat.equalsIgnoreCase("Choix1")) { action1(): action2(); } else if (resultat.equalsIgnoreCase("Choix2")) { action1(): action2(); } else if (resultat.equalsIgnoreCase("Choix3")) { action1(): action2(); } else { action1(); action2(); }
Merci d'avance !
Partager