Comment faire pour obtenir l'élément sélectionné dans la JList et l'utilisation de la coulée
Dans une partie de mon programme, j'ai un JList
qu'il y a une liste sur les lieux, et j'ai eu une API qu'il doit utiliser un élément de la JList
et imprimer la météo de cet emplacement. Alors maintenant, je ne peux pas le faire, parce que je utiliser
WeatherAPI chosen = locList.getSelectedIndex();
mais il y a une erreur: incompatibilité de Type: impossible de convertir de int à WeatherAPI.
C'est l'exemple de l'API travaille:
LinkedList<WeatherAPI> stations = FetchForecast.findStationsNearTo("cityname");
for (WeatherAPI station : stations) {
System.out.println(station);
}
WeatherAPI firstMatch = stations.getFirst();
Donc je ne veux pas obtenir la première option, je veux obtenir l'emplacement sélectionné par l'utilisateur. Il est tout au sujet du casting.
J'ai essayé aussi ce qui ne fonctionne pas:
WeatherAPI stations;
WeatherAPI firstMatch = stations.get(locList.getSelectedIndex());
J'ai eu le reste du code, qu'il utilise le "firstMatch, mais il l'utilise seulement quand il est de type WeatherAPI.
- Essayez de .getSelectedValues()?
- Incompatibilité de Type: impossible de convertir de l'Objet à WeatherAPI
- Crosspost: coderanch.com/t/608471/GUI/java/selected-item-JList-casting. Pourquoi êtes-vous perdre everybodies temps de poster une question qui a déjà été répondu?
Vous devez vous connecter pour publier un commentaire.
Vous avez deux choix.
Si vous êtes à l'aide de Java 7 et que vous avez créé votre
JList
etListModel
en utilisant la bonne génériques signature. En supposant que quelque chose comme...Et une liste semblable de modèle de déclaration, vous pouvez utiliser
Sinon, vous aurez besoin de jeter le résultat
Été un peu de la vieille école, j'avais généralement vérifier le résultat avant le cast
WeatherAPI chosen = (WeatherAPI)locList.getSelectedValue();
mais dans le processus de compilation et d'erreur, et en soulignant la ligne de l'API utilise des choisiList<ForecastForOneDay> forecast = FetchWeatherForecast.getWeatherForecast(chosen);
Essayez d'utiliser getSelectedValue():
DefaultListModel<String> myList = new DefaultListModel<String>(); JList locList = new JList(myList);
@MadProgrammer ma JList fonctionne bien, je peux ajouter et supprimer des éléments. Et Oui j'utilise eclipse de sorte qu'il devrait être de java 7.WeatherAPI Mymodel = new DefaultListModel<String>();
DefaultListModel<WeatherAPI> myList = new DefaultListModel<WeatherAPI>(); JList<WeatherAPI> locList = new JList<WeatherAPI>(myList);