public class TableModel extends AbstractTableModel {
Существует интерфейс под названием TableModel
. Не называйте класс так же, как интерфейс. Это сбивает с толку.
table.updateUI();
Вы НЕ должны вызывать updateUI (). Этот метод используется внутри Swing только при изменении LAF. Изменение данных не приводит к изменению LAF.
«Модель» несет ответственность за обновление «представления» при изменении данных модели.
public void update(ArrayList<String> names, String[][] content){
this.colNames = names.toArray(new String[0]);
this.content = content;
}
Ваше обновление (…) Метод НЕ уведомляет мнение о том, что данные изменились. Это можно сделать, вызвав метод
fireTableStructureChanged(…);
объекта AbstractTableModel в методе update (…).
Однако я не вижу причин для создания пользовательской TableModel. Я бы предложил вам просто использовать DefaultTableModel
. У него есть метод setDataVector(…)
, который позволяет сбрасывать данные в модели.