JComboBox renvoi de valeurs
Quelle méthode est utilisée pour renvoyer la sélection choisie par l'utilisateur?
JPanel ageSelection = new JPanel();
JLabel age = new JLabel("Age:");
ArrayList<Integer> ageList = new ArrayList<Integer>();
for (int i = 1; i <= 100; ++i) {
ageList.add(i);
}
DefaultComboBoxModel<Integer> modelAge = new DefaultComboBoxModel<Integer>();
for (Integer i : ageList) {
modelAge.addElement(i);
}
JComboBox<Integer> ageEntries = new JComboBox<Integer>();
ageEntries.setModel(modelAge);
ageEntries.addActionListener(new putInTextListener());
ageSelection.add(age);
ageSelection.add(ageEntries);
class putInTextListener implements ActionListener {
public void actionPerformed (ActionEvent event) {
ageEntries.getSelectedItem();
}
}
Lorsque la dernière ligne est ajoutée (ageEntries.getSelectedItem();
), j'obtiens une erreur:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Des idées?
Édité Code:
class putInAgeListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
Object myAge = ageEntries.getSelectedItem();
String myAgeData = myAge.toString();
int i = Integer.parseInt(myAgeData);
System.out.print(i);
}
}
OriginalL'auteur Maydayfluffy | 2012-02-25
Vous devez vous connecter pour publier un commentaire.
1) la présente déclaration est vide et sans doute vous souhaitez obtenir
Integer /Object /String
valeur actuellement sélectionnéeItem
2) le mieux serait d'utiliser ItemListener pour JComboBox, plutôt que de ActionListener, avis
ItemListener
tiré événementsSELECTED/DESELECTED
, toujours deux foisMODIFIER
Je n'ai pas (et ne veux pas trop) JDK7,
à partir de laquelle vous obtenez une exception, il y a des options comme des étoiles sur le ciel, voir mon edit
l'erreur est à partir de la ligne de ageEntries.getSelectedItem(); La ligne était censé prendre ce que l'utilisateur a sélectionné et le placer quelque part d'autre (comme un fichier texte). Mon édité code est une autre tentative de faire cela, mais qui a échoué.
retiré use_less vide
OriginalL'auteur mKorbel
Pour référence, voici une variante de @mKorbel de exemple qui illustre le générique de l'ajout de paramètres à
JComboBox
etComboBoxModel
dans Java 7. Il utilise également une nouvelle inférence fonctionnalité disponible dans Java 7, ce qui est discuté plus loin dans l'Inférence de Type pour les Génériques de Création d'Instance.OriginalL'auteur trashgod