Почему моя таблица не заполняется?

Проект без БД для учебных целях потом планирую добавить бд

Задача: отображать данные Students в таблице относящие к выборной Group Имеем: Fraem(Views) приложения, список Groups и таблицу с Students, прописанный слушатель введите сюда описание изображения

в группе есть 23243 есть Student но он не отображается

Код для панелей со слушателем:

private void createLists() {
    // Работа со списком групп;
    List<Group> groups = controller.getGroup();
    List<Student> students = controller.getStudents();

    dflm = new DefaultListModel<Group>();
    dflm.addAll(groups);
    listGroup = new JList(dflm);
    listGroup.setFont(new Font("Courier", Font.PLAIN, 18));
    listGroup.setPrototypeCellValue("1232431353421   ");
    listGroupPane = new JScrollPane(listGroup);

    // Работа с таблицы студентов
    stm = new StudentTableModel();
    tableStudent = new JTable(stm);
    tableStudentPane = new JScrollPane(tableStudent);
    tableStudentPane.setPreferredSize(new Dimension(400, 400));


    listGroup.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    listGroup.addListSelectionListener(e -> {

        Group group = (Group)dflm.getElementAt(((JList<?>)e.getSource()).
                getSelectedIndex());
        controller.getStudents_Group(group);
        for (Student student: students) {
            System.out.println(student);
            stm.addStudents(students);
        }
    });

}

Пока просто должен добавить

Код StudentTableModel:

public class StudentTableModel extends AbstractTableModel {
private int columnCount = 2;
private List<Student> students;


public StudentTableModel(){
    this.students = new ArrayList ();
    for(Student student: this.students){
        this.students.add(student);
    }
}

public StudentTableModel(List<Student> students){
    this.students = new ArrayList ();
    for(Student student: students){
        this.students.add(student);
    }
}
@Override
public int getRowCount() {
    return students.size();
}

@Override
public int getColumnCount() {
    return columnCount;
}


public void addStudent(Student student){
    this.students.add(student);
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    Student student = students.get(rowIndex);
    switch (columnIndex){
        case 0: return student;
        case 1: return student.getScore();
    }
    return "";
}


@Override
public String getColumnName(int columnIndex){
    switch (columnIndex){
        case 0: return "Фамилия Имя";
        case 1: return "Очко";
    }
    return "";
}

public void addStudents(List<Student> students) {
    this.students.addAll(students);
}

}

Если так прописать то работает:

    private void createLists() {
    // Работа со списком групп;
    List<Group> groups = controller.getGroup();
    List<Student> students = controller.getStudents();

    dflm = new DefaultListModel<Group>();
    dflm.addAll(groups);
    listGroup = new JList(dflm);
    listGroup.setFont(new Font("Courier", Font.PLAIN, 18));
    listGroup.setPrototypeCellValue("1232431353421   ");
    listGroupPane = new JScrollPane(listGroup);

    // Работа с таблицы студентов
    stm = new StudentTableModel();
    tableStudent = new JTable(stm);
    tableStudentPane = new JScrollPane(tableStudent);
    tableStudentPane.setPreferredSize(new Dimension(400, 400));
    **stm.addStudents(students);**

    listGroup.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    listGroup.addListSelectionListener(e -> {

        Group group = (Group)dflm.getElementAt(((JList<?>)e.getSource()).
                getSelectedIndex());
        controller.getStudents_Group(group);
        for (Student student: students) {
            System.out.println(student);
        }
    });

}

Ответы (1 шт):

Автор решения: Ильмир Зиганшин

Вопрос решен: Надо было обновлять UI

private void createLists() {
    ...
    listGroup.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            if ( e.getClickCount() == 1 ) {
                stm.removeAll();
                Group group = (Group) listGroup.getSelectedValue();
                List<Student> students = controller.getStudents_Group(group);
                stm.addStudents(students);
                tableStudent.updateUI();
            }
        }
    });

Изменил SelectionListener на MouseListener выше описано Так же добавил метод в StudentTableModel для удаление прошлых данных

public class StudentTableModel extends AbstractTableModel {
...
public void removeAll() {
    this.students.clear();
}
→ Ссылка