Если бы вы не использовали необработанный тип, компилятор жаловался бы на проблему.
Вы устанавливаете значение для объекта ListChangeListener.Change
вместо String
в следующей строке. Использование необработанного типа справа удаляет проверку типа, которая привела бы к ошибке времени компиляции.
TreeItem<String> temp = new TreeItem(c);
Вместо этого переберите список добавленных элементов и добавьте TreeItem
для всех них:
while (c.next()) {
if (c.wasAdded()) {
for (String element : c.getAddedSubList()) {
TreeItem<String> temp = new TreeItem<>(element);
tree.getRoot().getChildren().add(temp);
}
}
}