Если вы определяете DefaultListModel
вне вашего метода обновления, тогда оно становится переменной экземпляра , поэтому оно будет иметь то же значение для одного экземпляра.Таким образом, если вы вызываете этот метод снова и снова из одного и того же экземпляра, он просто добавит больше значений в существующий список.Таким образом, он показывает несколько элементов.
ПРИМЕЧАНИЕ : объявление DefaultListModel
внешней функции не вызывает каких-либо проблем, проблема заключается в том, что его объект вне функции является проблемой.Вы можете без проблем выполнить следующие действия:
DefaultListModel<String> model;
private void UpdateJList(){
model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
или попробуйте очистить предыдущие значения из вашей модели, а затем добавить новые значения.