April 19, 200817 yr 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
April 19, 200817 yr 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]); }
April 19, 200817 yr Author Parfait! Cela fonctionne exactement comme je le voulais. Merci à toi et à bientôt peut-être...
Archived
This topic is now archived and is closed to further replies.