Bulit
Bulit

Reputation: 995

Delete selected item from JList

Can anyone tell me a short way to delete the selected items from my JList?

I searched on google and here, but I found very many ways. Which way should I use?

Upvotes: 16

Views: 48976

Answers (3)

Mike Tyson
Mike Tyson

Reputation: 1

Once you delete the element from the model it will also be removed from the list. You can refer this JList article for more information. As the list is backed by a model if you do any operation on the model it will also reflect on the list. you just need to refresh the view.

Upvotes: 0

Joop Eggen
Joop Eggen

Reputation: 109613

As @Andreas_D said, the data centered, more abstract ListModel is the solution. This can be a DefaultListModel. You should explicitly set the model in the JList. So (thanks to comment by @kleopatra):

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

There are several remove... methods in DefaultListModel. By the way, this is a good question, as there is no immediate solution in the API (ListModel).

Upvotes: 33

Andreas Dolk
Andreas Dolk

Reputation: 114817

The JList component is backed by a list model. So the only recommended way to remove an item from the list view is to delete it from the model (and refresh the view).

Upvotes: 3

Related Questions