Добавляем строки в готовую таблицу JTable и удаляем их из неё
В своей работе программисту нередко приходится сталкиваться с задачами по работе с данными в табличном представлении.
В библиотеке Swing для этих целей служит класс JTable. Однако в литературе, а также интернет источниках, как правило, приводится описание работы с новой таблицей, которая создаётся в коде программы с нуля. Что же делать, если таблица уже создана и в неё необходимо добавить дополнительные строки или наоборот их удалить?
Несмотря на свою кажущуюся наивность данный вопрос весьма актуален как для работы с базами данных так и для таблиц формируемых другими способами.
Модель таблицы
Элементы управления Swing реализуют паттерн MVC. JTable не исключение.
Для описания модели таблиц служит интерфейс TableModel. Все классы, которые представляют модель таблицы, реализуют данный интерфейс. Обычно в качестве модели используется объект класса DefaultTableModel, но встречаются и другие классы.
Модель таблицы хранит в себе структуру таблицы, её данные и содержит все методы для работы с ними.
Структура и данные таблицы хранятся в модели в виде коллекций типа Vector. В настоящее время данный тип коллекций считается устаревшим, но так как в библиотеке Swing он по-прежнему широко используется, его приходится время от времени применять.
Как следует из вышесказанного, для того чтобы выполнить какие либо манипуляции с данными таблицы необходимо получить доступ к её модели.
При создании таблицы с нуля в коде программы это не требуется, потому что в процессе создания таблицы явно создаётся и её модель. Однако и получить модель уже созданной таблицы не сложно. Для этого служит специальные метод getModel, который возвращает модель таблицы.
Возвращаемый результат имеет тип TableModel. Поэтому приведение типов обязательно.