Очистка 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");
Если это не работает, то вы, вероятно, скрываете свои переменные, в этом случае рассмотрите возможность выполнения работающего примера, который демонстрирует вашу проблему. Это приведет к меньшему беспорядку и лучшим ответам