Очистка JList

Поэтому у меня есть JList, к которому я добавляю данные при вызове метода. Я хочу иметь возможность обновлять данные в JList, но каждый раз, когда я пытаюсь удалить их из JList, новые данные добавляются к старым. Таким образом, в основном, когда кнопка нажата, она вызывает метод, и JList должен обновляться (старые данные очищаются, а новые считываются).

Я попытался очистить данные из модели, и когда я запрашиваю размер, он говорит, что это 0, но он все еще добавляется. Я также попытался удалить из самого списка. Сводя меня с ума, любая помощь будет оценена. Это в основном то, что я делаю, когда "новые данные" меняются при каждом вызове метода.

DefaultListModel model = new DefaultListModel();
JList list = new JList(model);

public void method(){
 if(model.size() > 0){
 model.removeAllElements();
 model.clear();
 list.removeAll();
 }

model.addElement("new Data");
model.addElement("new Data");

}

1 ответ

Для начала не звоните list.removeAllв то время как это вряд ли что-то сделает, не стоит так связываться с компонентами.

Самое простое решение - просто заменить JList"s ListModel...

list.setModel(new DefaultListModel());

или, в вашем случае, что-то вроде...

model = new DefaultListModel();
list.setModel(model);
model.addElement("new Data");

Если это не работает, то вы, вероятно, скрываете свои переменные, в этом случае рассмотрите возможность выполнения работающего примера, который демонстрирует вашу проблему. Это приведет к меньшему беспорядку и лучшим ответам

Другие вопросы по тегам