Я не уверен, что понимаю вопрос, но ... почему "для каждого зачисления добавляется новый узел курса"? Потому что вы говорите это. Прямо здесь:
course = new DefaultMutableTreeNode(c);
category.add(course);
enrollment = new DefaultMutableTreeNode(e.getParticipant().getFirstNames());
course.add(enrollment);
Добавьте курс, затем добавьте запись. Всегда в парах. Сейчас я не знаю структуру ваших данных, но смею сказать, что это не то, что вы хотите. Можете ли вы описать более подробно, что такое Enrollment
(один человек? Список людей? Что-то еще?), Что возвращает getParticipant()
и что вы хотите видеть в дереве?
Еще один комментарий - вы понимаете, что эти два if
утверждения проверяют одно и то же, верно? Вы можете избавиться от внутреннего, так как он ничего не делает. Или, что более вероятно, переписать, чтобы сделать что-то полезное (однако, как я уже сказал, я не слишком уверен, что вы хотите сделать).
if (e.getIdCourse() == c.getIdCourse()) {
// ...
if (c.getIdCourse() == e.getIdCourse()) {