Question sur JOptionPane.showInputDialog
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:
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:
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:
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 !