web-dev-qa-db-fra.com

Supprimer l'élément sélectionné de JList

Quelqu'un peut-il me dire un moyen rapide de supprimer les éléments sélectionnés de ma JList?

J'ai cherché sur google et ici, mais j'ai trouvé beaucoup de façons. De quelle manière devrais-je utiliser?

11
Bulit

Comme @Andreas_D l'a dit, ListModel, plus abstrait et centré sur les données, est la solution. Cela peut être un DefaultListModel . Vous devez explicitement définir le modèle dans la liste JList. Donc (grâce au commentaire de @kleopatra):

DefaultListModel model = (DefaultListModel) jlist.getModel();
int selectedIndex = jlist.getSelectedIndex();
if (selectedIndex != -1) {
    model.remove(selectedIndex);
}

Il existe plusieurs méthodes remove... dans DefaultListModel. Au fait, c'est une bonne question, car il n'y a pas de solution immédiate dans l'API (ListModel).

24
Joop Eggen

Le composant JList est pris en charge par un modèle de liste. Ainsi, le seul moyen recommandé de supprimer un élément de la liste vue consiste à le supprimer du modèle (et à actualiser la vue).

3
Andreas_D

Une fois que vous supprimez l'élément du modèle, il sera également supprimé de la liste. Vous pouvez vous référer à cet article JList pour plus d'informations. Comme la liste est appuyée par un modèle, toute opération effectuée sur le modèle sera également répercutée sur la liste. il vous suffit d'actualiser la vue.

0
Mike Tyson