Aller au contenu

[Résolu][JAVA]InputDialog à choix multiple


Mounji

Messages recommandés

Bonjour a tous,

Je suis en train de développer une application et j'ai presque fini.

Cependant, je tente d'en améliorer l'utilisation et j'ai découvert dans la doc java l'existence d'une InputDialog bien spécifique.

Elle prend ce constructeur:

JOptionPane.showInternalInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

Le code d'exemple est le suivant:

Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null,possibleValues, possibleValues[0]);

J'ai besoin de le modifier afin qu'il prenne en parametre une ArrayList et non un tableau, afin de pouvoir avoir une liste dont la longueur et les données sont dynamiques.

J'ai donc modifié le code comme ceci, afin de tester:

ArrayList possibleValues = new ArrayList();
possibleValues.add((String)"First");
possibleValues.add((String)"Second");
possibleValues.add((String)"Third");
JOptionPane.showInputDialog(null,"Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null,possibleValues,possibleValues.get(0));

Et comme par hasard, cela ne fonctionne pas...

L'erreur renvoyée est:

cannot find symbol method showInputDialog(<nulltype>,java.lang.String,java.lang.String,int,<nulltype>,java.util.ArrayList,java.lang.Object)

Le probleme serait donc l'avant dernier paramètre? En effet tous les autres correspondent parfaitement à la définition par défaut. pourtant une ArrayList est bien un Object (comme toute classe....)

J'aimerai savoir comment regler ce probleme plutot génant...

Je vous remercie a l'avance.

@bientot

Lien vers le commentaire
Partager sur d’autres sites

La méthode "showInputDialog()" prend un tableau d'Objects en paramètre.

Tu peux donc lui donner un tableau de String comme dnas l'exemple, ou un tableau de ArrayList. Mais pas une unique ArrayList directement.

Mais je pense que la meilleure façon de résoudre ton problème est simplement d'utiliser la méthode "toArray()" de la classe List. Comme ceci :

ArrayList possibleValues = new ArrayList();
showDialog(possibleValues);

public void showDialog(List possibleValues)
{
Object[] values = possibleValues.toArray();
JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.INFORMATION_MESSAGE, null, values, values[0]);
}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...