Mounji Posté(e) le 19 avril 2008 Partager Posté(e) le 19 avril 2008 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 More sharing options...
Sentinel Posté(e) le 19 avril 2008 Partager Posté(e) le 19 avril 2008 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 More sharing options...
Mounji Posté(e) le 19 avril 2008 Auteur Partager Posté(e) le 19 avril 2008 Parfait! Cela fonctionne exactement comme je le voulais. Merci à toi et à bientôt peut-être... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.