У меня есть JList
, который принимает элементы из объектов ArrayList
и отображает некоторые элементы из объекта в панели списка. Когда я выбираю этот элемент, он отображает полную информацию в других полях и ярлыках. В рамках моей реализации программы я также могу добавлять и удалять объекты в ArrayList
. То, что я хотел бы сделать, это каждый раз, когда ArrayList
изменен. JList
будет обновляться, чтобы отразить новое состояние ArrayList
. Ниже приведен код для моего элемента JList
.Динамическое обновление JList из событий
DefaultListModel<String> defListModel = new DefaultListModel<String>();
if(studentList.size() > 0){
for(int i = 0; i < studentList.size(); i++){
Student aStudent = studentList.get(i);
defListModel.addElement(aStudent.toString());
}
}
JList<String> list = new JList<String>(defListModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
ListSelectionModel listSelectionModel = list.getSelectionModel();
listSelectionModel.addListSelectionListener(new SelectionListener());
scroll.setBounds(16, 24, 130, 205);
mainPanel.add(scroll);
Как я буду динамически обновлять этот список, поскольку элементы будут добавлены и удалены? Пожалуйста, не предоставляйте полное решение (поскольку я нахожу, что лучше училюсь), но любые полезные советы или предложения, в которых я мог бы найти решение, были бы оценены.