2011-02-10 1 views

Répondre

37

Si vous avez seulement mis (non nulle) String références dans le JComboBox, puis de toute façon est très bien.

Cependant, la première solution permettrait également des modifications futures dans lequel vous insérez Integer s, Doubles s, LinkedList s etc. comme des éléments dans la zone de liste déroulante.

Pour être robuste contre null valeurs (toujours sans coulée), vous pouvez envisager une troisième option:

String x = String.valueOf(JComboBox.getSelectedItem()); 
5

La première méthode est juste.

La deuxième méthode tue les chatons si vous essayez de faire quelque chose avec x après le fait autre que Object méthodes.

+3

+1 Et nous ne voulons pas tuer les chatons! –

+1

Eh bien, la première méthode tue les chatons sur les null-items. Voir ma réponse pour la solution de sauvegarde du chaton;) – aioobe

+5

@aioobe: Pourquoi nous intéressons-nous aux chatons «null»? :) – James

1

Ne lancez pas sauf si vous devez. Il n'y a rien de mal à appeler toString().

0

Notez que ce n'est pas une question à propos de JComboBox, mais de toute collection qui peut inclure plusieurs types d'objets. La même chose pourrait être dite pour "Comment puis-je obtenir une chaîne sur une liste?" ou "Comment puis-je obtenir un String sur un Object[]?"

+1

et ce n'est pas une réponse, c'est un commentaire. – camickr

+0

Notez que beaucoup de gens ne peuvent pas commenter dans ce système ridicule - "besoin X réputation". –

0
String x = JComboBox.getSelectedItem().toString(); 

vous permet de convertir tous les temps de la valeur integer, double, long, court en texte d'autre part,

String x = String.valueOf(JComboBox.getSelectedItem()); 

évitera les valeurs nulles, et convertir l'élément sélectionné de l'objet à la chaîne

0
JComboBox mycombo=new JComboBox(); //Creates mycombo JComboBox. 
add(mycombo); //Adds it to the jframe. 

mycombo.addItem("Hello Nepal"); //Adds data to the JComboBox. 

String s=String.valueOf(mycombo.getSelectedItem()); //Assigns "Hello Nepal" to s. 

System.out.println(s); //Prints "Hello Nepal". 
+0

correction: à la dernière ligne de cette réponse "out" est seulement une fois. –

+0

Salut, RamKrishna Thapa, bienvenue à [donc]. Si vous voulez apporter une correction à votre réponse, il suffit de cliquer sur le lien "[modifier]" sous le message. Merci. – Pang