Я реализую JList, который заполняется из базы данных.Я хочу множественный выбор из этого списка jList и удаление их.
Когда я выбираю некоторые элементы и нажимаю кнопку DELETE, запускается следующий код:
DatabasesConnections m = new DatabasesConnections();
mFavoriteList = m.deleteFavorite(jList1.getSelectedValue());
jList1.removeAll();
DefaultListModel<String> listModel = new DefaultListModel<>();
mFavoriteList.forEach((favorite) -> {
listModel.addElement(favorite.getName());
});
jList1.setModel(listModel);
где m.deleteFavorite метод является следующим:
public List<FavoriteList> deleteFavorite(String name) {
try {
if (!em.getTransaction().isActive()) {
em.getTransaction().begin();
}
Query query = em.createNativeQuery("SELECT ID FROM FAVORITE_LIST WHERE NAME= '"+name+"'");
List results = query.getResultList();
FavoriteList fl = em.find(FavoriteList.class, results.get(0));
em.remove(fl);
em.getTransaction().commit();
Query q = em.createQuery("SELECT f FROM FavoriteList f");
List<FavoriteList> mFavorites = q.getResultList();
return mFavorites;
} catch (Exception e) {
System.out.println("Error: Check database connection.");
return null;
}
}
Как вы видите после удаления элемента, я возвращаю новый список.Затем я устанавливаю новую модель в jList1.
После этого jList становится серым, и я не могу MultiSelect, как раньше ..
При первом запуске я могу выбратьМножественный:
После первого УДАЛЕНИЯ я получаю этот jList без опции множественного выбора: