2010-03-29 3 views
0

Je viens de lire le JavaDoc pour JComboBox (je promets que j'ai une vie ... Je ne lisais pas pour le plaisir. = P), et je pense que les problèmes que j'ai avec mon programme peuvent être attribués à getSelectedItem() méthode. La documentation indique:Quel est le but de getSelectedItem() de JComboBox?

Renvoie l'élément actuellement sélectionné.

Si la zone de liste déroulante est modifiable, cette valeur peut ne pas avoir été ajouté à la zone de liste déroulante avec addItem, insertItemAt ou les constructeurs de données.

Si vous ne pouvez pas obtenir les valeurs qui ont été ajoutées avec ces méthodes ou avec le constructeur, à quoi sert la méthode? Et comment peut je reçois la valeur d'un JComboBox "éditable"?

Lien vers JavaDoc: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComboBox.html#getSelectedItem()

Répondre

2

Si vous ne pouvez pas obtenir des valeurs qui ont été ajoutées avec ces méthodes ou avec le constructeur , de quelle utilité est la méthode ? Et comment puis-je obtenir la valeur à partir d'un JComboBox "modifiable"?

Ce n'est pas ce que disent les documents. Les docs disent que l'élément sélectionné n'a peut-être pas été ajouté avec add/insertItem, ce qui pourrait très bien être le cas si l'utilisateur éditait/tapait lui-même la valeur. Dans tous les cas, getSelectedItem() vous donne tout ce qui est sélectionné dans la combobox, qu'il s'agisse de l'une des valeurs que vous avez renseignées ou de l'une d'elles.

+0

Ahh, merci. J'ai mal interprété. Je prenais "modifiable" pour signifier "mutable". –

2

la valeur ajoutée supplémentaire par l'utilisateur dans le JComboxBox ne pas être ajouté dans le ComboBoxModel mais sera disponible en tant que java.lang.String via getSelectedItem()

0
final Object object = jComboBox.getEditor().getItem(); 
if (object instanceof String) { 
    final String string = (String)object; 
} 
0

Utile lorsque vous autorisez certaines entrées en dehors de la plage de valeurs fournie dans le modèle de liste déroulante.