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 :
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");
de passer cette liste à ma listbox et de récupérer le résultat
du choix (un String toujours forcément).
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]);
Mais cela fait je dois encore faire une succession atroce de if...else...if
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...)

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();
                }
Il y a forcément moyen de faire plus simple, qqun aurait une idée ?

Merci d'avance !