Это было задано раньше, но я не могу найти его сейчас. Проблема в том, что ваш метод updateItem(...)
неправильно обрабатывает случай, когда изображение равно null (или ячейка пуста). Это будет именно тот случай, когда вы удаляете элемент из таблицы. Вам нужно:
TableCell<ImageData, Image> cell = new TableCell<ImageData, Image>()
{
public void updateItem(Image image, boolean empty)
{
if(image == null) {
setGraphic(null);
} else {
imgView.setImage(image);
setGraphic(imgView);
}
}
};
return cell;
и аналогично для другой фабрики ячеек.