Может ли кто-нибудь сказать мне короткий способ удалить выбранные элементы из моего JList
?Удалить выбранный элемент из JList
Я искал в Google и здесь, но я нашел очень много способов. Каким образом я должен использовать?
Может ли кто-нибудь сказать мне короткий способ удалить выбранные элементы из моего JList
?Удалить выбранный элемент из JList
Я искал в Google и здесь, но я нашел очень много способов. Каким образом я должен использовать?
Как сказал @Andreas_D, центр данных, более абстрактный ListModel - это решение. Это может быть DefaultListModel. Вы должны явно указать модель в JList. Так (спасибо на комментарий @kleopatra):
DefaultListModel model = (DefaultListModel) jlist.getModel();
int selectedIndex = jlist.getSelectedIndex();
if (selectedIndex != -1) {
model.remove(selectedIndex);
}
Есть несколько remove...
методов в DefaultListModel. Кстати, это хороший вопрос, так как немедленного решения в API (ListModel) нет.
Я бы не получил индекс, а сам выбранный элемент, а затем вызвал метод removeElement модели, который принимает параметр Object. –
согласен: ListModel - это самый минимальный из всех интерфейсов представления (ни изменяемый, ни модифицируемый), но это не проблема OPs: s/he заявляет, что прочитал раздел учебника (который показывает тот же образец, что и вы здесь) - минус проверка на выбор). Остерегайтесь: модель JList по умолчанию _not_ a DefaultListModel, вы должны явно установить ее. – kleopatra
Компонент JList
подкрепляется надбавкой модели. Таким образом, единственный рекомендованный способ удалить элемент из списка view - удалить его из модели (и обновить представление).
Если он использует DefaultListModel (и по всей вероятности, он есть), то нет необходимости обновлять представление, так как это должно быть сделано автоматически. –
Это был более или менее общий ответ на общий вопрос. –
Получить модель JList (которая, вероятно, будет объектом [DefaultListModel] (http://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultListModel.html)) и удалить выбранные элемент из модели с помощью метода 'removeElement (Object obj)'. –
См. Стандартный Java [Swing tutorial] (http://docs.oracle.com/javase/tutorial/uiswing/components/list.html#mutable) по этой теме – DNA
@JoopEggen: Я не являюсь нисходящим, если вот что вы просите, но я не согласен с вами в том, что я думаю, что есть один простой ответ. Вы получаете выбранный объект из JList (а не индекса), а если не null, вы вызываете метод удаления модели, который принимает объект: 'removeElement (obj)'. –